簡體   English   中英

從主分片或副本中獲取的文檔

[英]Document Fetched from primary shard or replica

為什么當我一次又一次地運行相同的查詢時,是從主碎片和副本碎片中提取文檔的。 因此,我得到了不同的搜索結果。

示例響應-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具有主分片。 當我多次運行相同的查詢時,查詢獲取的工作方式以及為什么響應來自主碎片和副本碎片?

很難說,您能給我更多有關您的結果的細節嗎?

Elastic的網站上有一篇很好的文章,了解如何查詢主/副本碎片的獲取結果: https : //www.elastic.co/guide/zh-cn/elasticsearch/guide/current/_query_phase.html

Hth,

這是Elasticsearch的基本信息,我強烈建議您閱讀文檔,至少掌握關於Elasticsearch的基礎知識。

簡而言之,當查詢進入集群時,需要查詢的碎片可以是主數據庫或副本數據庫。 沒關系,它們中的數據相同,並且可以平等地執行查詢。 我不建議僅針對主數據庫或副本數據庫運行查詢,因為這會在集群中創建熱點,並可能破壞集群的穩定性。

同樣,對主副本和副本的評分應該幾乎相同。 計算分數的算法的一部分涉及分片中存在多少個文檔以及這些文檔中術語的頻率。 棘手的部分是,當您更新或刪除文檔時,該文檔不會立即從磁盤中刪除,而是僅標記為刪除。 Elasticsearch在后台合並分片文件,並采用較小的,類似大小的段,並創建較大的段,然后刪除較小的段。 在合並時,標記為刪除的文檔實際上已從索引中刪除。

在此之前,這些文件不會在搜索中返回,但在如上所述計算分數時會考慮它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM