如何避免在solr中的分面搜索中拆分字段值

abh*_*eet 4 solr

在基于构面的搜索中,在搜索结果中,doc元素具有字符串形式的字段(多于单词),但在构面中,每个值都是字符串形式的单个字.以下是示例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>
Run Code Online (Sandbox Code Playgroud)

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"/>
Run Code Online (Sandbox Code Playgroud)

  <copyField source="fieldA" dest="fieldD"/>
  <copyField source="fieldB" dest="fieldD"/>
  <copyField source="fieldC" dest="fieldD"/>
Run Code Online (Sandbox Code Playgroud)

我想要多个字符串的facet值,就像在字段值中的多个单词的字符串中一样.请建议.

Mau*_*ark 13

你必须从改变你的字段类型type="text_general"type="string"为小的搜索.

如果您不能为该字段执行此操作,则可以创建一个新的字符串字段(它可以是一个copyfield),然后在该字段上应用该facet.