多搜索模板 API
编辑多搜索模板 API编辑
使用单个请求运行多个 模板化搜索。
response = client.msearch_template( index: 'my-index', body: [ {}, { id: 'my-search-template', params: { query_string: 'hello world', from: 0, size: 10 } }, {}, { id: 'my-other-search-template', params: { query_type: 'match_all' } } ] ) puts response
GET my-index/_msearch/template { } { "id": "my-search-template", "params": { "query_string": "hello world", "from": 0, "size": 10 }} { } { "id": "my-other-search-template", "params": { "query_type": "match_all" }}
请求编辑
GET <target>/_msearch/template
GET _msearch/template
POST <target>/_msearch/template
POST _msearch/template
路径参数编辑
-
<target>
- (可选,字符串) 要搜索的数据流、索引和别名的逗号分隔列表。支持通配符 (
*
)。要搜索所有数据流和索引,请省略此参数或使用*
。
查询参数编辑
-
ccs_minimize_roundtrips
- (可选,布尔值) 如果为
true
,则跨集群搜索请求的网络往返次数将降至最低。默认为true
。 -
max_concurrent_searches
- (可选,整数) API 可以运行的并发搜索的最大数量。默认为
max(1, (# of 数据节点 * min(搜索线程池大小, 10)))
。 -
rest_total_hits_as_int
- (可选,布尔值) 如果为
true
,则响应将返回hits.total
作为整数。如果为 false,则它将返回hits.total
作为对象。默认为false
。 -
search_type
-
(可选,字符串) 搜索操作的类型。可用选项
-
query_then_fetch
-
dfs_query_then_fetch
-
-
typed_keys
- (可选,布尔值) 如果为
true
,则响应将在其各自的类型前缀聚合和建议器名称。默认为false
。
请求正文编辑
请求正文必须采用以下格式的换行符分隔 JSON (NDJSON)
<header>\n <body>\n <header>\n <body>\n
每个 <header>
和 <body>
对表示一个搜索请求。
The <header>
支持与 多搜索 API 的 <header>
相同的参数。The <body>
支持与 搜索模板 API 的请求正文相同参数。
-
<header>
-
(必需,对象) 用于限制或更改搜索的参数。
此对象对于每个搜索正文都是必需的,但可以为空 (
{}
) 或空行。<header>
对象的属性-
allow_no_indices
-
(可选,布尔值) 如果为
true
,则请求 不会 返回错误,即使通配符表达式或_all
值仅检索到缺失或关闭的索引。此参数也适用于指向缺失或索引的 别名。
-
expand_wildcards
-
(可选,字符串) 通配符模式可以匹配的索引类型。如果请求可以定位数据流,则此参数决定通配符表达式是否匹配隐藏的数据流。支持逗号分隔的值,例如
open,hidden
。有效值为-
all
- 匹配任何数据流或索引,包括 隐藏 的数据流或索引。
-
open
- 匹配打开的、非隐藏的索引。还匹配任何非隐藏的数据流。
-
closed
- 匹配关闭的、非隐藏的索引。还匹配任何非隐藏的数据流。数据流无法关闭。
-
hidden
- 匹配隐藏的数据流和隐藏的索引。必须与
open
、closed
或两者结合使用。 -
none
- 不接受通配符模式。
默认为
open
。 -
-
ignore_unavailable
- (可选,布尔值) 如果为
true
,则响应中不包含来自缺失或关闭索引的文档。默认为false
。 -
index
-
(可选,字符串或字符串数组) 要搜索的数据流、索引和别名。支持通配符 (
*
)。将多个目标指定为数组。如果未指定此参数,则使用
<target>
请求路径参数作为后备。 -
preference
- (可选,字符串) 用于执行搜索的节点或分片。默认情况下为随机。
-
request_cache
- (可选,布尔值) 如果为
true
,则可以将请求缓存用于此搜索。默认为索引级设置。请参阅 分片请求缓存设置。 -
routing
- (可选,字符串) 用于将搜索操作路由到特定分片的自定义 路由值。
-
search_type
-
(可选,字符串) 指示在对返回的文档进行评分时是否应使用全局术语和文档频率。
选项为
-
query_then_fetch
- (默认) 使用分片的本地术语和文档频率对文档进行评分。这通常更快,但不太准确。
-
dfs_query_then_fetch
- 使用所有分片上的全局术语和文档频率对文档进行评分。这通常更慢,但更准确。
-
-
-
<body>
-
(请求,对象) 搜索的参数。
响应代码编辑
API 仅在请求本身失败时返回 400
状态代码。如果请求中的一个或多个搜索失败,则 API 将返回 200
状态代码,并在响应中包含每个失败搜索的 error
对象。
curl 请求编辑
如果向 curl
提供文本文件或文本输入,请使用 --data-binary
标志而不是 -d
以保留换行符。
$ cat requests { "index": "my-index" } { "id": "my-search-template", "params": { "query_string": "hello world", "from": 0, "size": 10 }} { "index": "my-other-index" } { "id": "my-other-search-template", "params": { "query_type": "match_all" }} $ curl -H "Content-Type: application/x-ndjson" -XGET localhost:9200/_msearch/template --data-binary "@requests"; echo