Elassandra搜索重复数据

时间:2018-11-14 06:59:45

标签: elasticsearch-5 cassandra-3.0 elassandra

在将查询分发到节点时,如何在Elassandra中确定token_range

跨Elassandra节点复制数据时会发生什么?

如何过滤重复的结果?

2 个答案:

答案 0 :(得分:0)

我的理解是,查询以类似于Cassandra的方式遍历集群。

对于Elasticsearch而言,数据复制不是问题。他们创建自己的表以创建其搜索信息,并且这些表通过标准Cassandra机制进行复制。如果您了解Cassandra复制的工作原理,那么Elasticsearch数据将执行相同的操作。

过滤之所以发生,是因为每个搜索节点都获得了一个不重叠的令牌范围来处理。换句话说,一个节点被要求返回结果为1,2,3,用于结果的下一个节点4,5,6,和第三节点结果7,8,9,因此不会有重叠和没有实际的过滤。

答案 1 :(得分:0)

Elassandra根据目标索引的search_strategy_class将查询分发到节点。有两种策略:PrimaryFirstSearchStrategy(默认设置)和RandomSearchStrategy

主要优先搜索策略

每个节点都包含在查询中,并负责返回它作为主节点拥有的文档。当节点关闭时,下一个副本将用作替代副本。

随机搜索策略

当RF> 1时,仅节点的一个子集即可达到完整环。随机搜索策略通过随机选择这样的节点子集来利用这一点,以提高搜索效率。

两种策略均根据上述行为向每个子查询添加token_range过滤器。因此,过滤是在本地进行的,而不是在协调器节点中进行的。