搜索适配器¶
要创建自定义搜索适配器,您需要将 BaseSearch
课 然后创建新类的实例并将其作为 search 创建时的关键字参数 WebSupport
对象::
support = WebSupport(srcdir=srcdir,
builddir=builddir,
search=MySearch())
有关创建自定义搜索适配器的更多信息,请参阅 BaseSearch
下面的班级。
在 1.6 版本发生变更: BaseSearch类将从sphinx.websupport.earch移至sphinxcontri.websupport.earch。
方法¶
BaseSearch类中定义了以下方法。有些方法不需要重写,但有些方法 (add_document()
和 handle_query()
)必须在您的子类中重写。要获得一个有效的示例,请看一下用于呼呼的内置适配器。
- BaseSearch.init_indexing(changed: Sequence[str] = ()) None [源代码]¶
由生成器调用以初始化搜索索引器。 changed 是将重新索引的页面名列表。您可能希望在索引开始之前从搜索索引中删除这些内容。
- 参数:
changed -- 将被重新索引的页面名列表
- BaseSearch.feed(pagename, filename, title, doctree)[源代码]¶
由构建器调用以向索引添加doctree。转换 doctree 发送短信并将其传递给
add_document()
.除非您需要访问 doctree .覆盖add_document()
而不是.- 参数:
pagename -- 要建立索引的页面的名称
filename -- 原始源文件的名称
title -- 要索引的页面的标题
doctree -- 是页面的docutils doctree表示
- BaseSearch.add_document(pagename, filename, title, text)[源代码]¶
调用
feed()
将文档添加到搜索索引中。此方法应该执行将单个文档添加到搜索索引所需的一切工作。pagename 是被索引的页面的名称。它是源文件相对路径和文件名的组合,减去扩展名。例如,如果源文件是“ext/builders.rst”,则 pagename 将是“ext/builder”。处理查询时需要与搜索结果一起返回。
- 参数:
pagename -- 被编入索引的页面的名称
filename -- 原始源文件的名称
title -- 页面标题
text -- 页面全文
- BaseSearch.query(q)[源代码]¶
由网络支持API调用以获取搜索结果。此方法编译要在以下情况下使用的正规表达式
extracting context
,然后调用handle_query()
. 除非您不想使用包含的extract_context()
法 覆盖handle_query()
而不是.- 参数:
q -- 搜索查询字符串。
- BaseSearch.handle_query(q)[源代码]¶
调用
query()
检索搜索查询的搜索结果 q .这应该返回包含以下格式的二元组的可迭代对象::(<path>, <title>, <context>)
path 和 title 与传递给的值相同
add_document()
,而且 context 应该是文档中搜索查询周围文本的简短文本片段。的
extract_context()
方法是作为创建 context .- 参数:
q -- 搜索查询