ES通配符查询慢优化

 

使用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

 


 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值