Sphinx HTML 输出的搜索功能的不同 URL 参数有什么影响?
What effect do the different URL parameters of the Sphinx HTML output's search feature have?
HTML Sphinx 生成的文档包括一个搜索界面。
例如,在官方 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
请求。将显示包含合适字符序列的这些文件的片段。
令人惊讶的是,搜索算法(_static
目录中的 html 构建中的 searchtools.js
仅考虑第一个(q
)查询参数。忽略所有其他参数。
请注意,可以将 Sphinx 连接到搜索后端。例如,文档托管服务 Read the Docs implements an Haystack/Elasticsearch-based search back end。这意味着我的解释不一定适用于 Sphinx 生成的文档集的所有实例。
HTML Sphinx 生成的文档包括一个搜索界面。
例如,在官方 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
请求。将显示包含合适字符序列的这些文件的片段。
令人惊讶的是,搜索算法(_static
目录中的 html 构建中的 searchtools.js
仅考虑第一个(q
)查询参数。忽略所有其他参数。
请注意,可以将 Sphinx 连接到搜索后端。例如,文档托管服务 Read the Docs implements an Haystack/Elasticsearch-based search back end。这意味着我的解释不一定适用于 Sphinx 生成的文档集的所有实例。