15.Elasticsearch 7.15 Query DSL 之 Wildcard查询、Regexp查询

Wildcard查询

介绍

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

例子

以下搜索返回 user.id 字段包含以 ki 开头并以 y 结尾的文档。这些匹配项可以包括 kiy、kity 或 kimchy

GET /_search
{
  "query": {
    "wildcard": {
      "user.id": {
        "value": "ki*y",
        "boost": 1.0,
        "rewrite": "constant_score"
      }
    }
  }
}

wildcard的顶级参数

(必填, 对象) 你想查询的字段

field的二级参数

参数名描述
boost(Optional, float) 用于降低或提高查询相关性得分的浮点数。默认为1.0。
rewrite(可选,字符串)用于重写查询的方法。有关有效值和更多信息,请参阅 rewrite 参数。
case_insensitive [从7.10.0版本添加](可选,布尔值)当设置为 true 时,允许将值与索引字段值进行不区分大小写的匹配。默认为 false,这意味着匹配的区分大小写取决于基础字段的映射。
value(必需,字符串)您希望在提供的 中找到的术语的通配符模式。 此参数支持两个通配符运算符:?,匹配任何单个字符;*,可以匹配零个或多个字符,包括一个空字符
wildcard(必需,字符串)value 参数的别名。如果您同时指定值和通配符,则查询将使用请求正文中的最后一个。

Regexp查询

介绍

返回包含与正则表达式匹配的术语的文档。

例子

以下搜索返回 user.id 字段包含任何以 k 开头并以 y 结尾的术语的文档。 .* 运算符匹配任何长度的任何字符,包括空字符。匹配项可以包括 ky、kay 和 kimchy。

GET /_search
{
  "query": {
    "regexp": {
      "user.id": {
        "value": "k.*y",
        "flags": "ALL",
        "case_insensitive": true,
        "max_determinized_states": 10000,
        "rewrite": "constant_score"
      }
    }
  }
}

regexp的顶级参数

(必填, 对象) 你想查询的字段

field的二级参数

参数名描述
rewrite(可选,字符串)用于重写查询的方法。有关有效值和更多信息,请参阅 rewrite 参数。
case_insensitive [从7.10.0版本添加](可选,布尔值)当设置为 true 时,允许将值与索引字段值进行不区分大小写的匹配。默认为 false,这意味着匹配的区分大小写取决于基础字段的映射。
value(必需,字符串)您希望在提供的 中找到的术语的正则表达式。有关支持的运算符列表,请参阅正则表达式语法。
flags为正则表达式启用可选运算符。ALL (Default) 允许所有可选运算符。其他可选运算符见 Regular expression syntax
max_determinized_states(可选,整数)查询所需的最大自动机状态数。默认值为 10000。Elasticsearch 在内部使用 Apache Lucene 来解析正则表达式。 Lucene 将每个正则表达式转换为包含许多确定状态的有限状态机。您可以使用此参数来防止该转换无意中消耗过多资源。您可能需要增加此限制以运行复杂的正则表达式。

regexp的限制

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值