搜索适配器¶
要创建自定义搜索适配器,您需要将 BaseSearch
班级。然后创建新类的一个实例并将其作为 search 关键字参数 WebSupport
对象::
support = WebSupport(srcdir=srcdir,
builddir=builddir,
search=MySearch())
有关创建自定义搜索适配器的详细信息,请参阅 BaseSearch
下级。
在 1.6 版本发生变更: basesearch类从sphinx.websupport.search移到sphinxcontrib.websupport.search。
方法¶
以下方法在basesearch类中定义。有些方法不需要重写,但有些方法 (add_document()
和 handle_query()
)必须在子类中重写。对于一个工作示例,请查看用于whoosh的内置适配器。
- BaseSearch.init_indexing(changed=[])[源代码]¶
由生成器调用以初始化搜索索引器。 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/builders”。处理查询时,需要返回搜索结果。
- 参数:
pagename -- 正在索引的页的名称
filename -- 原始源文件的名称
title -- 页面标题
text -- 页面的全文
- BaseSearch.query(q)[源代码]¶
由Web支持API调用以获取搜索结果。此方法编译当
extracting context
然后调用handle_query()
. 除非不想使用包含的extract_context()
方法。重写handle_query()
相反。- 参数:
q -- 搜索查询字符串。
- BaseSearch.handle_query(q)[源代码]¶
被称为
query()
检索搜索查询的搜索结果 q . 这将返回一个包含以下格式的元组的iterable::(<path>, <title>, <context>)
path 和 title 与传递给的值相同
add_document()
和 context 应该是文档中搜索查询周围文本的短文本片段。这个
extract_context()
方法是创建 context .- 参数:
q -- 搜索查询