ES通配符查询慢优化

博客讲述使用ES查询时遇到的问题,当查询条件为空字符串时速度超慢,而单个*或中间有字符时速度正常。提出优化方案,即查询为空时不加此查询条件,可使效率提升10倍以上,还提及一篇相关ES通配符查询文章待学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

使用ES查询遇到的坑:

当为空字符串查询** 时速度超慢

原始查询条件:

生成的查询语句:

查询语句

http://11.11.11.11:9100/

data_aa-2018.08/category_goods_1_day/_search  POST

{

  "from" : 0,

  "size" : 10,

  "query" : {

    "bool" : {

      "must" : [ {

        "query_string" : {

          "query" : "100000253821",

          "fields" : [ "pid" ],

          "default_operator" : "and"

        }

      },{

        "query_string" : {

          "query" : "**",

          "fields" : [ "goodsName" ],

          "analyze_wildcard" : true

        }

      } ]

    }

  },

  "sort" : [ {

    "analyzeDate" : {

      "order" : "desc"

    }

  } ]

}

结论:

当为空字符串查询** 时速度超慢,为单个*或中间有字符的时候都不慢

方案:

优化查询为空的时候不加此查询条件:

效率提升10被以上

遇到同样一篇涉及ES通配符查询的文章: 后续学习

https://www.cnblogs.com/raoshaoquan/p/7083844.html

 


 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值