原英文版地址: 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,则会构建一个优化的查询,该查询不会被认为很慢,因此会被执行。