Sphinx HTML输出的搜索功能的不同URL参数会产生什么影响?
问题内容:
Sphinx生成的HTML文档包括一个搜索界面。
例如,当在正式的Python文档中搜索“ popen”一词时,将构建以下URL:
https://docs.python.org/3/search.html?q=popen&check_keywords=yes&area=default
不同的URL参数有什么作用?
问题答案:
Sphinx生成的HTML文档的搜索执行完全基于JavaScript,其工作方式如下:
-
当您构建Sphinx项目时,将创建一个包含搜索索引的JavaScript文件(
searchindex.js
)。 -
当您执行搜索查询时,搜索前端将识别所有被视为命中的文件,并从服务器获取其源文件。这些是简单的文件
GET
请求,仅需要静态文件服务器。将显示这些文件的包含合适字符序列的片段。
令人惊讶的是,搜索算法(searchtools.js
在_static
目录中的html版本中)仅考虑第一个(q
)查询参数。所有其他参数将被忽略。
请注意,可以将Sphinx连接到搜索后端。例如,文档托管服务“ 阅读文档” 实现了一个基于Haystack /
Elasticsearch的搜索后端
。这意味着我的解释并不一定适用于Sphinx生成的文档集的所有实例。