搜索应用程序搜索
编辑搜索应用程序搜索
编辑此功能为 Beta 版,可能会发生更改。其设计和代码不如官方 GA 功能成熟,并按原样提供,不提供任何保证。Beta 版功能不受官方 GA 功能的支持 SLA 约束。
根据指定的查询参数,使用与搜索应用程序关联的搜索模板或默认模板(如果未指定)生成并执行 Elasticsearch 查询。未指定的模板参数将分配其默认值(如果适用)。
请求
编辑POST _application/search_application/<名称>/_search
先决条件
编辑需要对搜索应用程序的后备别名具有读取权限。
路径参数
编辑-
typed_keys
- (可选,布尔值)如果为
true
,则聚合和建议器名称在响应中以其各自的类型为前缀。默认为false
。
请求主体
编辑-
params
- (可选,字符串到对象的映射)用于从与搜索应用程序关联的搜索模板生成 Elasticsearch 查询的查询参数。如果在
params
中未指定搜索模板中使用的参数,则将使用该参数的默认值。
可以将搜索应用程序配置为验证搜索模板参数。有关详细信息,请参阅 put search application API 中的 dictionary
参数。
响应代码
编辑-
400
-
传递给搜索模板的参数无效。例如:
- 缺少必需的参数
- 参数数据类型无效
- 参数值无效
-
404
- 搜索应用程序
<名称>
不存在。
示例
编辑以下示例针对名为 my-app
的搜索应用程序执行搜索,该应用程序使用来自 文本搜索示例的搜索模板
resp = client.search_application.search( name="my-app", params={ "query_string": "my first query", "text_fields": [ { "name": "title", "boost": 5 }, { "name": "description", "boost": 1 } ] }, ) print(resp)
const response = await client.searchApplication.search({ name: "my-app", params: { query_string: "my first query", text_fields: [ { name: "title", boost: 5, }, { name: "description", boost: 1, }, ], }, }); console.log(response);
POST _application/search_application/my-app/_search { "params": { "query_string": "my first query", "text_fields": [ {"name": "title", "boost": 5}, {"name": "description", "boost": 1} ] } }
生成的 Elasticsearch 查询将如下所示:
{ "from": 0, "size": 10, "query": { "multi_match": { "query": "my first query", "fields": [ "description^1.0", "title^5.0" ] } }, "explain": false }
在这种情况下,请求中未指定 from
、size
和 explain
参数,因此使用搜索模板中指定的默认值。
预期的响应是生成并执行的 Elasticsearch 查询的搜索结果。响应格式与 Elasticsearch 搜索 API 使用的格式相同
{ "took": 5, "timed_out": false, "_shards": { "total": 1, "successful": 1, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 1, "relation": "eq" }, "max_score": 0.8630463, "hits": ... } }