我跟着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 但我没有得到理想的回应。请让我知道我在这里缺少什么?
答案 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添加到通过该处理程序的所有请求的查询字符串中。