Search API
返回与请求中定义的查询匹配的搜索结果。
http
GET /my-index-000001/_search
Request
GET /<target>/_search
GET /_search
POST /<target>/_search
POST /_search
Prerequisites
如果启用了 Elasticsearch 安全功能,针对目标数据流(data stream)、索引(index)或别名(alias)则必须具有 read
索引权限。对于跨集群搜索,请参阅配置跨集群搜索的权限。
若要针对别名搜索特定时间点(PIT),则必须对该别名的数据流或索引具有 read
索引权限。
Description
允许您执行搜索查询,并返回与查询匹配的搜索结果。您可以使用 q
查询字符串参数或请求正文来提供搜索查询。
Path parameters
<target>
(可选,字符串)要搜索的数据流、索引和别名的逗号分隔列表。支持通配符(*
)。若要搜索所有数据流和索引,可以省略此参数,或者使用 *
或 _all
。
Query parameters
此 API 的许多选项可以通过查询参数(query parameter)或请求正文参数(request body parameter)指定。如果同时指定了这两个参数,则仅使用查询参数。
allow_no_indices
(可选,布尔值)如果为 false
,该参数用于控制当请求的目标索引(通过通配符、别名或 _all
指定)不存在或已关闭时,请求将返回错误。即使请求还针对其他打开的索引,此行为也适用。例如,如果请求针对 foo*,bar*
,并且有索引以 foo
开头,但没有索引以 bar
开头,则会返回错误。
默认值为 true
。
allow_partial_search_results
(可选,布尔值)如果为 true
,则在分片请求超时或分片失败时返回部分结果。如果为 false
,则返回错误且不包含部分结果。默认值为 true
。
要覆盖此字段的默认值,请将 search.default_allow_partial_results
集群设置设置为 false
。
analyzer
(可选,字符串)用于查询字符串的分析器。
只有在指定了 q
查询字符串参数时,才能使用此参数。
analyze_wildcard
(可选,布尔值)如果为 true
,则对通配符和前缀查询进行分析。默认值为 false
。
只有在指定了 q
查询字符串参数时,才能使用此参数。
batched_reduce_size
(可选,整数)应在协调节点上一次性缩减的分片结果数量。如果请求中可能包含大量分片,则应使用此值作为保护机制,以减少每个搜索请求的内存开销。默认值为 512
。
ccs_minimize_roundtrips
(可选,布尔值)如果为 true
,则在执行跨集群搜索(CCS)请求时,会尽量减少协调节点与远程集群之间的网络往返。请参阅跨集群搜索如何处理网络延迟。默认值为 true
。
default_operator
(可选,字符串)查询字符串查询的默认操作符:AND
或 OR
。默认值为 OR
。
只有在指定了 q
查询字符串参数时,才能使用此参数。
df
(可选,字符串)当查询字符串中未指定字段前缀时,要使用的默认字段。
只有在指定了 q
查询字符串参数时,才能使用此参数。
docvalue_fields
(可选,字符串)要作为每个命中的字段的 docvalue 表示形式返回的字段的逗号分隔列表。请参阅 Doc value 字段。
expand_wildcards
(可选,字符串)通配符模式可以匹配的索引类型。如果请求可以针对数据流,则此参数决定通配符表达式是否匹配隐藏的数据流。支持逗号分隔的值,例如 open,hidden
。有效值包括:
all
匹配任何数据流或索引,包括隐藏的。
open
匹配打开的、非隐藏的索引。也匹配任何非隐藏的数据流。
closed
匹配关闭的、非隐藏的索引。也匹配任何非隐藏的数据流。数据流不能被关闭。
hidden
匹配隐藏的数据流和隐藏的索引。必须与 open
、closed
或两者结合使用。
none
不接受通配符模式。
默认值为 open
。
explain
(可选,布尔值)如果为 true
,则作为命中的部分返回关于评分计算的详细信息。默认值为 false
。
from
(可选,整数)起始文档偏移量。必须是非负数,默认值为 0
。
默认情况下,您不能使用 from
和 size
参数翻阅超过 10,000 个命中的结果。要翻阅更多命中结果,请使用 search_after
参数。