通配符查询
编辑通配符查询编辑
返回包含与通配符模式匹配的词项的文档。
通配符运算符是一个占位符,可以匹配一个或多个字符。例如,*
通配符运算符可以匹配零个或多个字符。您可以将通配符运算符与其他字符组合使用,以创建通配符模式。
示例请求编辑
以下搜索将返回 user.id
字段包含以 ki
开头并以 y
结尾的词项的文档。这些匹配的词项可以包括 kiy
、kity
或 kimchy
。
resp = client.search( body={ "query": { "wildcard": { "user.id": { "value": "ki*y", "boost": 1, "rewrite": "constant_score_blended", } } } }, ) print(resp)
response = client.search( body: { query: { wildcard: { 'user.id' => { value: 'ki*y', boost: 1, rewrite: 'constant_score_blended' } } } } ) puts response
GET /_search { "query": { "wildcard": { "user.id": { "value": "ki*y", "boost": 1.0, "rewrite": "constant_score_blended" } } } }
wildcard
的顶级参数编辑
-
<field>
- (必填,对象)您希望搜索的字段。
<field>
的参数编辑
-
boost
-
(可选,浮点数)用于降低或提高查询相关度分数的浮点数。默认为
1.0
。您可以使用
boost
参数来调整包含两个或多个查询的搜索的相关度分数。提升值是相对于默认值
1.0
的。介于0
和1.0
之间的提升值会降低相关度分数。大于1.0
的值会提高相关度分数。 -
case_insensitive
[7.10.0] 添加于 7.10.0。 - (可选,布尔值)如果设置为 true,则允许模式与索引字段值进行不区分大小写的匹配。默认值为 false,这意味着匹配的区分大小写取决于底层字段的映射。
-
rewrite
- (可选,字符串)用于重写查询的方法。有关有效值和更多信息,请参阅
rewrite
参数。 -
value
-
(必填,字符串)您希望在提供的
<field>
中查找的词项的通配符模式。此参数支持两个通配符运算符
-
?
,匹配任何单个字符 -
*
,可以匹配零个或多个字符,包括空字符
避免以
*
或?
开头的模式。这可能会增加查找匹配词项所需的迭代次数,并降低搜索性能。 -
-
wildcard
- (必填,字符串)
value
参数的别名。如果同时指定了value
和wildcard
,则查询将使用请求正文中的最后一个。
注意编辑
允许高开销查询编辑
如果 search.allow_expensive_queries
设置为 false,则不会执行通配符查询。