SOLR facettig问题

时间:2018-04-25 06:06:43

标签: apache solr solrcloud faceted-search

我们有一个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设置中创建了一个具有相同配置的示例集合,并提取了相同的数据。在该集合中,上述查询都正常工作。

任何帮助都会非常感激。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

由于您没有为facet.limit提供值,因此Solr默认只返回该字段的100个最常用值。我还建议使用非标记化字段进行分面,但如果它适用于您的用例 - 当然。但请注意,这将为00-00和其他多种格式创建单独的令牌。

  

facet.limit

     

此参数指定应为构面字段返回的最大约束计数数(实际上是返回的字段的构面数)。负值表示Solr将返回无限数量的约束计数。

     

默认值为100。