【问题标题】:Document Fetched from primary shard or replica从主分片或副本中获取的文档
【发布时间】:2017-03-07 11:16:13
【问题描述】:

为什么当我一次又一次地运行相同的查询时,文档是从主分片和副本分片中获取的。因此,我得到了不同的搜索结果。

示例响应 - 1 - 副本 “_shard”:0, "_node": "node_1", "_index": "sample_ind", "_type": "my_type", "_id": "E1", “_score”:2.9560382,

Response-2 Primary shard                            
    "_shard": 0,
    "_node": "node_2",
    "_index": "sample_ind",
    "_type": "my_type",
    "_id": "E2",
    "_score": 2.956294,

node-1 有副本分片,node-2 有主分片。当我多次运行同一个查询时,查询获取如何工作以及为什么响应来自主分片和副本分片?

【问题讨论】:

    标签: search elasticsearch indexing lucene


    【解决方案1】:

    很难说,您能否详细介绍一下您的结果?

    Elastic 的网站包含一篇很好的文章,了解如何从主/副本分片查询获取结果:https://www.elastic.co/guide/en/elasticsearch/guide/current/_query_phase.html

    第,

    【讨论】:

      【解决方案2】:

      这是基本的 Elasticsearch 信息,我强烈建议您阅读文档以至少掌握有关 Elasticsearch 的基本知识。

      简而言之,当查询来到集群时,需要查询的分片可以是主分片,也可以是副本分片。没关系,它们中的数据相同,并且可以平等地执行查询。我不建议您仅针对主节点或副本运行查询,因为它会在您的集群中创建热点并可能破坏集群的稳定性。

      此外,主副本和副本的评分应该几乎相同。计算分数的部分算法涉及分片中存在多少文档以及这些文档中术语的频率。棘手的部分是,当您更新或删除文档时,该文档不会立即从磁盘中删除,它只会被标记为删除。在后台,Elasticsearch 合并分片文件并获取较小的、大小相似的段,并创建一个更大的段并删除较小的段。在合并时,标记为已删除的文档实际上已从索引中删除。

      在此之前,这些文档不会在搜索中返回,但在计算上述分数时会考虑它们。

      【讨论】:

      • 热点是什么意思以及它如何破坏集群@Andrei Stefan?谢谢
      • 因为您只想要来自特定节点上的一些分片的结果,这些分片将比其他节点有更多的工作要做。这意味着内存和/或 CPU 压力的可能性更高。这意味着不稳定。 @ChintanShah25
      猜你喜欢
      • 2011-04-29
      • 2014-02-22
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      相关资源
      最近更新 更多