2016-09-15 96 views
0

我在solr的創建一個節點(shrd1)和創建的內部的一個核心和運行下面的命令SOLR不跨越

..solr-5.1.0 \ BIN> solr.cmd所有碎片搜索-s solr/shrds/shrd1 -p 8886 -f

並導入id和name爲字段且查詢相同且數據正常的數據。

然後我Solr中創建的另一個節點(shrd2)和創建的內部的一個核心和運行下面的命令

..solr-5.1.0 \ BIN> solr.cmd -s的solr/shrds/shrd2 -p 8887 -f

並導入id和name作爲字段並查詢相同的數據並且工作正常。

現在正試圖爲分佈式搜索,所以嘗試了下面的事情瀏覽器,

http://localhost:8887/solr/souro_core2/select?q=name:souro&indent=true&shards=localhost:8886/solr/souro_core1,localhost:8887/solr/souro_core2

(這兩個碎片都具有名稱souro,所以它應該返回結果兩個右?) 但是相反返回兩個結果,結果只有一個碎片。

你能讓我知道我失蹤了嗎?爲什麼我沒有從所有碎片中獲得結果,爲什麼我只從一個碎片中獲得?

P.S. - 我按照以下鏈接一樣,

https://cwiki.apache.org/confluence/display/solr/Distributed+Search+with+Index+Sharding

+0

我認爲您應該使用SolrCloud進行分片 - 從您給出的鏈接中:「強烈建議您在需要向上擴展或擴展時使用SolrCloud。下面描述的設置是遺留的,並且在存在之前使用SolrCloud。「 –

+0

我知道,但在此之前,我試圖在不使用雲的情況下實現此功能 – souro

回答

0

最後我得到了我的答案。在兩個分片中都有一個「id」字段,兩者都包含值1. 但是在做了一點研究之後,我發現,

該Id在覈心之間必須是唯一的。唯一鍵字段在所有分片中必須是唯一的。如果遇到具有重複唯一鍵的文檔,Solr將嘗試返回有效結果,但行爲可能不確定。

鏈接: Search across multiple cores and get unified result

在我來說,這是返回結果只有一個。我改變了id的價值,並得到了預期的結果。

0

試試這個

http://localhost:8887/solr/souro_core2/select?q=name:souro&indent=true&shards=shard1,shard2 

這應該工作 如果你有收集與它有兩個碎片名souro_core2。

+0

由於顯而易見的原因,我沒有將shard的邏輯名稱設置爲shard1和shard2 但它與名稱不同我給了碎片的實際細節(如主機:端口..)。 – souro