如何查询Solr shard

时间:2014-11-22 10:44:26

标签: solr sharding

我跟着this在Solr中设置了碎片。根据这个主题“在两个本地服务器上测试索引分片”,我能够查询分片并获得结果(somehose:port1 / solr / select?shards = somehost:port1 / solr,somehost:port2 / solr& indent =真安培; q = HelloWorld的 )。

在该页面中还提到“不要求用户明确包含shards参数,通常首选将此参数配置为solrconfig.xml的RequestHandler部分中的默认值。” 所以,我在soll实例的solrconfig.xml中进行了更改,该实例在port1上运行

    <requestHandler name="/select" class="solr.SearchHandler">

      <lst name="defaults">
       <str name="echoParams">explicit</str>
       <int name="rows">10</int>
        <str name="df">text</str>
       </lst>
    <lst name="shards.info">
     <lst name="localhost:port2/solr">
     <long name="numFound">1333</long>
    <float name="maxScore">1.0</float>
    <str name="shardAddress">http://localhost:port2/solr</str>
   <long name="time">686</long>
   </lst>
  <lst name="localhost:port1/solr">
   <long name="numFound">342</long>
   <float name="maxScore">1.0</float>
   <str name="shardAddress">http://localhost:port1/solr</str>
   <long name="time">602</long>
  </lst>
  </lst>

现在,我正试图点击somehost:port1 / solr / collection1 / select?q = helloworld&amp; wt = json&amp; indent = true 但我没有得到理想的回应。请让我知道我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

您无法将响应中的内容复制到配置文件中 - 这两种格式完全不同。引用的是defaults部分中的每个条目都添加到查询字符串中(除非它们已经在那里提供了 - 如果你想强制某个值可以使用某些值,那么还有一些选项。 ;被覆盖)。

<requestHandler name="/selectdistributed" class="solr.SearchHandler">
    <lst name="defaults">
        [...]
        <str name="shards">somehost:port1/solr,somehost:port2/solr</str>
    </lst>
</requestHandler>

..应该做你想要的。这会将shards = somehost:port1 / solr,somehost:port2 / solr添加到通过该处理程序的所有请求的查询字符串中。