搜索适配器¶
要创建自定义搜索适配器,您需要将 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 -- 搜索查询