通配符查询
编辑通配符查询
编辑返回包含匹配通配符模式的词项的文档。
通配符运算符是一个占位符,它匹配一个或多个字符。例如,*
通配符运算符匹配零个或多个字符。您可以将通配符运算符与其他字符组合以创建通配符模式。
示例请求
编辑以下搜索返回 user.id
字段包含以 ki
开头,以 y
结尾的词项的文档。这些匹配的词项可以包括 kiy
、kity
或 kimchy
。
resp = client.search( 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
const response = await client.search({ query: { wildcard: { "user.id": { value: "ki*y", boost: 1, rewrite: "constant_score_blended", }, }, }, }); console.log(response);
GET /_search { "query": { "wildcard": { "user.id": { "value": "ki*y", "boost": 1.0, "rewrite": "constant_score_blended" } } } }
wildcard
的顶层参数
编辑-
<field>
- (必需,对象)您要搜索的字段。
<field>
的参数
编辑-
boost
-
(可选,浮点数)用于减少或增加查询的相关性评分的浮点数。默认为
1.0
。您可以使用
boost
参数来调整包含两个或多个查询的搜索的相关性评分。Boost 值相对于默认值
1.0
。介于0
和1.0
之间的 boost 值会降低相关性评分。大于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,则不会执行通配符查询。