首页 > 解决方案 > Solr json.facet 术语类型不适用于多值字符串字段

问题描述

我在 Solr 中有一个多值字段,尝试terms为该字段返回 facet 没有产生任何结果。

<fieldType name="industries_text" 
    class="solr.TextField" positionIncrementGap="100" 
    multiValued="true">

<field name="industries" type="industries_text" 
    sortMissingLast="true" indexed="true" stored="true" 
    multiValued="true" uninvertible="false" 
    omitPositions="true" />
"json.facet": {
    industries: {
       type: "terms",
       field: "industries",
       missing: true,
    }
}

这将返回:

"industries": {
  "missing": {
    "count": 0
  },
  "buckets": []
}

然而,当我查询所有文档时,都会industries: ["industry1", "industry2"]返回,所以它们索引了。

标签: solr

解决方案


您明确告诉 Solr 您不希望该字段为 uninverted。这是能够创建构面的要求。

切换uninvertible="false"uninvertible="true"或不使用它以使其成为默认值 ( true)。

您想设置uninvertible="false" 该字段是否支持 docValues 并且它们已启用。TextFields 不支持 docValues,因此如果您打算将其用于任何需要不倒置结构的操作(例如 Faceting),则它必须是不倒置的。


推荐阅读