gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 11:15:29 25 4
gpt4 key购买 nike

基于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"/>

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

最佳答案

您必须将字段类型从 type="text_general" 更改为 type="string" 才能进行构面搜索。

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

关于solr - 如何避免 solr 中分面搜索中字段值的拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18720182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com