我们有一个SOLR 5.2.1集群,我们有大约70M文档索引。 我目前面临的一个问题是,当我们在一个具有一个过滤条件的字段上面对时,我没有看到响应中的某个分面值。例如,以下是在SOLR上被触发的查询 : http://HOST:/ solr的/ shard3_replica1 /选择Q = :&安培; facet.mincount = 1&安培;行= 0&安培;小面=真安培; facet.field = CID&安培; FQ = CTID:123456
因此,在响应方面返回时,但不返回一个值(例如cId:9999999)。 但是如果我们将相同值的过滤器与原始过滤器一起应用,我可以看到响应中的数据。例如: http://HOST:/ solr的/ shard3_replica1 /选择Q = :&安培; facet.mincount = 1&安培;行= 0&安培;小面=真安培; facet.field = CID&安培; FQ = CTID:123456&安培; FQ = cgid进行:9999999
我可以很好地看到返回了facet值。
以下是字段的相关模式定义:
<field name="cId" type="text_general" indexed="true" stored="true"/>
<field name="ctId" type="text_general" indexed="true" stored="true" multiValued="true"/>
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
我在本地solr设置中创建了一个具有相同配置的示例集合,并提取了相同的数据。在该集合中,上述查询都正常工作。
任何帮助都会非常感激。 提前谢谢。
答案 0 :(得分:0)
由于您没有为facet.limit
提供值,因此Solr默认只返回该字段的100个最常用值。我还建议使用非标记化字段进行分面,但如果它适用于您的用例 - 当然。但请注意,这将为00-00
和其他多种格式创建单独的令牌。
facet.limit
此参数指定应为构面字段返回的最大约束计数数(实际上是返回的字段的构面数)。负值表示Solr将返回无限数量的约束计数。
默认值为100。