本文档介绍 Fess v2 搜索 API。 公共响应信封、错误模型及 CSRF 相关内容,请参阅 API 概述。
基础 URL 为 http://<Server Name>/api/v2/(本地环境示例:http://localhost:8080/api/v2)。
搜索文档
请求
| HTTP 方法 | GET |
| 端点 | /api/v2/search |
搜索匹配查询的文档,并以公共信封格式返回结果。 载荷中的所有字段名均使用 snake_case。
q 参数可以使用与常规搜索界面相同的搜索语法,包括 AND/OR/NOT 检索、字段指定检索、通配符检索、模糊检索等。搜索语法的详细说明请参阅 Fess 用户指南。
请求参数
表: 请求参数
响应
成功时(200),以下字段会在公共信封的 response 下直接返回。
各字段说明如下。
表: 响应字段
Note
当插件将搜索转到别处而不是执行搜索时(例如 DuckDuckGo 风格的 !g 等 bang),成功响应中只包含 q 和 redirect_url 。客户端应跳转到 redirect_url 。
错误响应
错误模型详情请参阅 API 概述。该端点返回的 HTTP 状态码如下。
表: 错误响应
全量文档获取(滚动搜索·NDJSON)
请求
| HTTP 方法 | GET |
| 端点 | /api/v2/documents/all |
以 NDJSON(application/x-ndjson)流式传输所有匹配查询的文档。 每行为 {"data":{...}} 对象,包含 QueryFieldConfig#isApiResponseField 允许的字段。但与 GET /search 不同,不包含搜索得分 score 。
当流中途失败时,最后一行会输出并刷新以下内容:
因此,客户端必须检查最后一行的第一个键,以区分正常完成(data)还是服务器异常(error)。
查询使用与 GET /search 相同的参数集(q、sort、num、lang、ex_q、sdh、fields.*、as.*、track_total_hits、facet.*、geo.*)构建。 滚动搜索默认是禁用的(api.search.scroll=false)。禁用时返回 invalid_request(400)。要启用它,请在 fess_config.properties 中设置 api.search.scroll=true(参见 批量获取搜索结果)。
请求参数
规范中明确列出的参数如下。
表: 请求参数
响应
成功时(200),Content-Type 为 application/x-ndjson,每行返回一条文档,格式如下。
错误响应
错误模型详情请参阅 API 概述。该端点返回的 HTTP 状态码如下。
表: 错误响应
相关主题
字段指定检索(按标题、URL 等缩小范围) - 字段指定检索
特殊字符 - 特殊字符与转义
通配符检索 - 通配符检索