企业大数据之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会首先做这样一个同步参照物的过程,多了这样一个过程影响的是查询的效率,在生产过程中的取舍有了开发这自己来定。

 

posted @ 2016-08-06 11:30    阅读(436)  评论(0编辑  收藏  举报