我使用类似
的查询查询Solr(4.5)(ean:(boh OR dqn OR irc OR kjv OR jwn OR opf) AND aggregatorId:0)
这可以工作并提供六个结果。但是,如果我将ean的值列表的大小设置得非常大(大约10.000个值,包括以前找到的值),则服务器会提供包含0个文档的有效答案。我已将服务器配置为在solrconfig.xml中允许此数量的值:
<query>
<maxBooleanClauses>65536</maxBooleanClauses>
<filterCache
class="solr.FastLRUCache"
size="512"
initialSize="512"
autowarmCount="0"/>
<queryResultCache
class="solr.LRUCache"
size="512"
initialSize="512"
autowarmCount="0"/>
<documentCache
class="solr.LRUCache"
size="512"
initialSize="512"
autowarmCount="0"/>
<enableLazyFieldLoading>true</enableLazyFieldLoading>
<queryResultWindowSize>50</queryResultWindowSize>
<queryResultMaxDocsCached>200</queryResultMaxDocsCached>
<HashDocSet maxSize="2048" loadFactor="0.75"/>
<useColdSearcher>false</useColdSearcher>
<maxWarmingSearchers>2</maxWarmingSearchers>
</query>
在扩大ean的值列表时,我怎么得不到任何结果?
Solr日志中没有错误消息,答案有效(但错误)。当我将maxBooleanClauses设置为例如2048,我预计在Solr日志中出现过多布尔子句错误会导致400错误结果。
更新: 我已经尝试了一些尺寸;列表中最多可包含9055个元素;对于9056,它已经不复存在了。
我尝试升级到Solr 4.8;同样的现象。
使ean字段的内容更长或更短也对行为没有影响(我已经考虑过64k以上大小的查询存在问题,例如使用任何缓存或缓冲区,但是没有)。