通配符查询编辑

返回包含与通配符模式匹配的词项的文档。

通配符运算符是一个占位符,可以匹配一个或多个字符。例如,* 通配符运算符可以匹配零个或多个字符。您可以将通配符运算符与其他字符组合使用,以创建通配符模式。

示例请求编辑

以下搜索将返回 user.id 字段包含以 ki 开头并以 y 结尾的词项的文档。这些匹配的词项可以包括 kiykitykimchy

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 的。介于 01.0 之间的提升值会降低相关度分数。大于 1.0 的值会提高相关度分数。

case_insensitive [7.10.0] 添加于 7.10.0。
(可选,布尔值)如果设置为 true,则允许模式与索引字段值进行不区分大小写的匹配。默认值为 false,这意味着匹配的区分大小写取决于底层字段的映射。
rewrite
(可选,字符串)用于重写查询的方法。有关有效值和更多信息,请参阅rewrite 参数
value

(必填,字符串)您希望在提供的 <field> 中查找的词项的通配符模式。

此参数支持两个通配符运算符

  • ?,匹配任何单个字符
  • *,可以匹配零个或多个字符,包括空字符

避免以 *? 开头的模式。这可能会增加查找匹配词项所需的迭代次数,并降低搜索性能。

wildcard
(必填,字符串)value 参数的别名。如果同时指定了 valuewildcard,则查询将使用请求正文中的最后一个。

注意编辑

允许高开销查询编辑

如果 search.allow_expensive_queries 设置为 false,则不会执行通配符查询。