es优化建议-term查询建议使用keyword

1、数值一般配置成long类型
在做term查询的时候 如果是数值类型 查询效率低 ,因此建议把对应的字段都改成keyword类型

部分mapping
“headDarDetail”: {
“type”: “long”
},

headDarDetail 为long类型

部分查询语句 term 查询
“term”:{
“headDarDetail”:{
“value”:0,
“boost”:1
}
}

searchPorfile分析 下面这个这个阶段 耗时占比 97%
PointRangeQuery headDarDetail:[0 TO 0] 196.0ms 196.0ms 97.17%
headDarDetail 被解析成了范围查询

建议: headDarDetail 类型改成keyword 类型避免范围查询。

对于时间类型的数据优化,类似。
相对于 Term Query,Range Query 的执行时间要更长一些,当你限制范围时,Elasticsearch 只需要匹配更少的词条,范围越小,响应时间越短。如果有range的需求可以用datetype类型,字段类型是keyword还是date,这里要根据业务需求做取舍看是keyword 走term查询还是走date type做range。

https://stackoverflow.com/questions/54170329/why-are-is-indexordocvaluesquery-taking-so-long

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值