原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/query-dsl-prefix-query.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/query-dsl-prefix-query.html
本地英文版地址: ../en/query-dsl-prefix-query.html
重要: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 当前版本文档。
返回在指定的字段中包含特定前缀的文档。
下面这个搜索返回 user
字段包含以 ki
开头的词项的文档。
GET /_search { "query": { "prefix": { "user": { "value": "ki" } } } }
-
value
-
(必需, string) 你希望在指定的
<field>
中查找的词项的起始字符。 -
rewrite
-
(可选, string) 用于重写查询的方法。有效值及更多信息请参考
rewrite
参数。
可以通过组合 <field>
和 value
参数来简化 prefix
查询语法。例如:
GET /_search { "query": { "prefix" : { "user" : "ki" } } }
可以使用 index_prefixes
映射参数来提高前缀查询的速度。
如果启用了该参数,Elasticsearch 会在单独的字段中索引 2 到 5 个字符的前缀。
这让 Elasticsearch 以更大的索引为代价去更有效地运行前缀查询。
如果 search.allow_expensive_queries
设置为false
,则前缀查询不会被执行。
即使有此设置,但是如果启用了 index_prefixes
,则会构建一个优化的查询,该查询不会被认为很慢,因此会被执行。