我在solr中创建了一个节点(shrd1)并在其中创建了一个核心并运行以下命令
.. 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作为字段并且查询相同的数据,并且它正常工作。
现在正在尝试分布式搜索,所以尝试了下面的东西浏览器,
(两个碎片都有名称souro,所以它应该返回结果2对吗?) 但不是返回两个结果,结果只来自一个分片。
你可以告诉我我错过了什么吗?为什么我没有得到所有分片的结果为什么我只能从一个分片中获取?P.S。 - 我已经按照以下链接进行了相同的操作,
https://cwiki.apache.org/confluence/display/solr/Distributed+Search+with+Index+Sharding
答案 0 :(得分:0)
试试这个
http://localhost:8887/solr/souro_core2/select?q=name:souro&indent=true&shards=shard1,shard2
那应该有用 如果你有一个名为souro_core2的集合,它有两个碎片。
答案 1 :(得分:0)
最后我得到了答案。在两个分片中都有一个" id"字段和两者都包含值1。 但经过一些研究后我发现了,
ID必须在核心之间是唯一的。唯一键字段在所有分片中必须是唯一的。如果遇到具有重复唯一键的文档,Solr将尝试返回有效结果,但行为可能是不确定的。
在我的情况下,它只返回一个结果。我改变了id的值并得到了预期的结果。