5

在基于 facet 的搜索中,在搜索结果 doc 元素中的字段具有字符串形式的值(多于单词),但在 facet 中,每个值都是单个单词的字符串形式。以下是示例 solr 搜索结果,

<result>
   <doc>
       <str name="fieldA">abc1 efg1 ijk1</str>
       <str name="fieldA">abc2 efg2 ijk2</str>
       <str name="fieldA">abc3 efg3 ijk3</str>
       <arr name="fieldD">
           <str>abc1 efg1 ijk1</str>
           <str>abc2 efg2 ijk2</str>
           <str>abc3 efg3 ijk3</str>
       </arr>
   </doc>
</result>
<lst name="facet_counts">
    <lst name="facet_queries">
       <int name="fieldB:ab">some_number</int>
    </lst>
    <lst name="facet_fields">
       <lst name="fieldA">
            <int name="abc1">1</int>   I want <int name="abc1 efg1 ijk1">1</int>
            <int name="efg1">1</int>
            <int name="ijk1">1</int>
       </lst>   
    </lst>
</lst>

Schema.xml 具有字段 - fieldA、fieldB、fieldC 和 fieldD,如下所示

  <field name="fieldA" type="text_general" stored="true" indexed="true"/>
  <field name="fieldB" type="text_general" stored="true" indexed="true"/>
  <field name="fieldC" type="text_general" stored="true" indexed="true"/>
  <field name="fieldD" type="text_general" stored="true" indexed="true"/>

  <copyField source="fieldA" dest="fieldD"/>
  <copyField source="fieldB" dest="fieldD"/>
  <copyField source="fieldC" dest="fieldD"/>

我想要多个单词的字符串的构面值,就像字段值中的多个单词的字符串一样。请建议。

4

1 回答 1

17

您必须将字段的类型从更改type="text_general"type="string"用于构面搜索。

如果您不能为该字段执行此操作,您可以创建一个新的字符串字段(它可能是一个复制字段),然后在该字段上应用构面。

于 2013-09-10T14:32:16.807 回答