码迷,mamicode.com
首页 > 其他好文 > 详细

企业大数据之Elasticsearch的搜索类型

时间:2016-08-06 12:57:29      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:

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

 

企业大数据之Elasticsearch的搜索类型

标签:

原文地址:http://www.cnblogs.com/gnool/p/5743629.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!