【问题标题】:SOLR is not searching across all SHARDSSOLR 没有在所有 SHARDS 中搜索
【发布时间】:2016-09-15 16:17:11
【问题描述】:

我在 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 作为字段的数据并查询相同的数据,它工作正常。

现在正在尝试分布式搜索,所以在事物浏览器下尝试,

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

(两个分片都有名称 souro,所以它应该返回结果 2 对吗?) 但结果不是返回两个结果,而是仅来自一个分片。

你能告诉我我错过了什么吗?为什么我没有从所有分片获得结果为什么我只从一个分片获得?

附: - 我已经按照下面的链接进行了相同的操作,

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

【问题讨论】:

  • 我认为您应该使用 SolrCloud 进行分片 - 从您提供的链接中:“强烈建议您在需要纵向扩展或横向扩展时使用 SolrCloud。下面描述的设置是旧的并且已使用在 SolrCloud 存在之前。”
  • 我知道,但在此之前我试图在不使用云的情况下实现这一目标。

标签: solr


【解决方案1】:

我终于得到了答案。在两个分片中都有一个“id”字段,并且都包含值 1。 但经过一番研究,我发现,

ID 需要在内核中唯一。唯一键字段在所有分片中必须是唯一的。如果遇到具有重复唯一键的文档,Solr 将尝试返回有效结果,但行为可能是不确定的。

链接: Search across multiple cores and get unified result

就我而言,它只返回一个结果。我更改了 id 的值并得到了预期的结果。

【讨论】:

    【解决方案2】:

    试试这个

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

    应该可以 如果您有名称为 souro_core2 的集合,其中包含两个分片。

    【讨论】:

    • 它不起作用,因为我没有将分片的逻辑名称指定为 shard1 和 shard2。但是我给出了分片的实际详细信息(例如主机:端口..),而不是名称有什么不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 2013-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多