Wildcard query
source:www.elastic.co/guide/en/el…
path:Elasticsearch - Query DSL - Term-level queries - Wildcard query
返回包含与通配符模式匹配的term的document。一个通配符运算符就是匹配一个或多个字符的占位符。例如,*这个通配符运算符匹配0个或多个字符。你可以将通配符运算符和其他字符结合起来创造一个通配符pattern。
Example request
下面会搜索user.idfield包含 以ki开头 y结尾的term的document。匹配的term可以是kiy, kity, or kimchy。
GET /_search
{
"query": {
"wildcard": {
"user.id": {
"value": "ki*y",
"boost": 1.0,
"rewrite": "constant_score_blended"
}
}
}
}
Top-level parameters for wildcard
field
(Required,object)想要搜索的field。
Parameters for field
boost
(Optional,float)pass
case_insensitive`[7.10.0]
(Optional,Boolean)当设置为true时,允许pattern和field 值进行大小写不敏感的匹配。默认为false,这意味着是否大小写敏感依赖依赖底层field的mapping。
rewrite
(Optional,string)用来重写query的方法,更多请查看 rewrite parameter
value
(Required,string)你想要在指定field上搜索的通配符pattern。参数支持两种通配符操作符:
?会匹配任何单个字符*会匹配0个或多个字符,包括空字符
Warning
尽量避免pattern以 * 或 ?开头,这会增加查找匹配term的循环,导致较慢的搜索表现。
wildcard
(Required,string)value参数的别名。如果你同时指定了value 和wildcard。query会使用 request body中最后定义的那个。
Notes
Allow expensive queries
如果 search.allow_expensive_queries被设为false,Wildcard query不会被执行。