企业大数据之Elasticsearch的搜索类型
下面的 ES基于版本(V2.3.4)
ES之默认
1.默认自动发先同一局域网的所有集群节点
2.默认一个索引库会有5个分片,(分片越多,效率越好)
由于这两个默认,所以统一索引库的分片对分布在不同机器上,API搜索时会有这样的问题
ES的搜索类型
1.为什么会有这个东西?
如图,会出现这两个问题:
and和then的区别:如下图
2.解决办法
ES定义了四种搜索类型:
QUERY_THEN_FETCH:默认搜索类型,对50个进行分值排序,返回的数据量对但是有不准确的行为
QUERY_AND_FETCH:直接返回50个(速度快,准确)
DFS_QUERY_THEN_FETCH:先搜集所有文档匹率和词匹率,然后返回从返回的50个数据,排序取前十ID,在查询
DFS_QUERY_AND_FETCH:先搜集所有文档匹率和词匹率,然后返回从返回的50个数据
上面两种搜索方式排序的参照物不一样,下面的两种先统一参照物,再次搜索
then和and的区别是:then是返回数据量对但是速度慢,and数据量多,但是快
DFS会首先做这样一个同步参照物的过程,多了这样一个过程影响的是查询的效率,在生产过程中的取舍有了开发这自己来定。
作者:舆-风动名扬 出处:http://www.cnblogs.com/gnool/
© 作者和博客园,欢迎转载,未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如果觉得还有帮助的话,可以点一下右下角的【推荐】想跟我一起进步么?那就【关注】我吧。