十、Elasticsearch多shard下relevance
2017-07-15 本文已影响366人
编程界的小学生
1、在多shard场景下,score是不准确的,导致排序出问题
若一个index下有多个shard的话(默认就5个primary shard),可能搜索结果会不准确。
不准确原因如下
![](https://img.haomeiwen.com/i4582242/107a12c15f4f8a5c.png)
2、解决方案
(1)生产环境下,数据量大,尽可能实现均匀分配
数据量很大的话,其实一般情况下,es都是再多个shard中均匀路由数据的,路由的时候根据_id,负载均衡
比如说有10个document的title都包含java,一个5个shad,那么一般情况负载均衡,其实每个shard都应该有2个doc的title包含java
如果是均衡分配的话,就没有上述问题了。
(2)测试环境下,几乎没有数据量,所以会导致此问题,可以将index的primary shard设置1个,number_of_shards=1
如果说只有一个shard,那么当然所有的document都在这个shard里面,就没有这个问题了
若有兴趣,欢迎来加入群,【Java初学者学习交流群】:458430385,此群有Java开发人员、UI设计人员和前端工程师。有问必答,共同探讨学习,一起进步!
欢迎关注我的微信公众号【Java码农社区】,会定时推送各种干货:
![](https://img.haomeiwen.com/i4582242/ca4a357ae859b1aa.jpg)