作为未使用过es新手,前两天接到排查搜索接口价格排序不准确的任务,紧锣密鼓的配好本地环境开始调试,看来看去一句排序:
$params['body']['sort']['goods_price'] = ['order' => "asc"];
也查了官方文档,没毛病啊。无奈强制转换字段类型,又是打印各种参数,折腾好久,还是没有用!
下班吃饭时候想到mapping的数据类型,第二天回到公司一查果然是创建索引时把goods_price类型设置为integer了,改成float,浮点数价格排序正常了
'goods_price' => [
'type' => 'float',
]
总结:由于对es不熟悉,不知索引字段类型在创建时候已经确定了,结果就是搜索排序时候怎么都改不动,或许还有其他方法在搜索后可以调整,等遇到再补充吧。
ps:官方文档是个好东西,尤其当遇到问题不能直接查到解决方案时。
ES排序坑
一名Elasticsearch新手在处理搜索接口价格排序问题时,发现由于索引字段类型错误导致排序不准确。通过将商品价格字段从整型更改为浮点型,成功解决了排序问题。
1316

被折叠的 条评论
为什么被折叠?



