Prefix query
source:www.elastic.co/guide/en/el…
path:Elasticsearch - Query DSL - Term-level queries - Prefix query
在指定的field上搜索包含指定前缀的document。
Example request
下面的query会搜索user.id field上以ki开头的document。
GET /_search
{
"query": {
"prefix": {
"user.id": {
"value": "ki"
}
}
}
}
Top-level parameter for prefix
field
(Required,object)要搜索的field
Parameters for field
value
(Required,string)你想在指定field中搜索词的前缀
rewrite
(Optional,string)用来重写query的method,可选值和更多信息 请查阅 rewrite parameter
case_insensitive[7.10.0]
(Optional,Boolean)当设为true时,会在field上搜索是大小写敏感。默认是false。这意味着搜索是否大小写敏感取决于底层field的mapping。
Note
Short request example
你可以通过将field和value进行合并来简化prefix query。例如
GET /_search
{
"query": {
"prefix" : { "user" : "ki" }
}
}
Speed up prefix queries
可以使用index_prefixes mapping参数来加速prefix 查询。如果启用,Elasticsearch会在单独的field对prefix进行索引处理。这可以让prefix query更高效只不过索引所占空间会变大。
Allow expensive queries
如果search.allow_expensive_queries设置为false,prefix query不会被执行。然而,如果启用了index_prefixes,依然会进行查询。