SOLR:facet.field 对字段中的每个单词的作用不同,如何将 facet.field 应用于整个字段句子?

SOLR: facet.field is working for each word in a field differently, how to apply facet.field for whole field sentence?

在facet.field中,我添加了"MerchantName"字段,所以得到如下结果

"facet_fields":{
    "MerchantName":[
        "amazon",133281,
        "factory",99566,
        "club",99566,
        "fashion",4905,
        "swish",4905,
        "store",1001,
        "swank",1001,
        "the",1001
    ]
}

在上面的数组中,"club factory"、"swish fashion"和"the swank store"在一个字段中,但是您可以看到一个数组将它们视为不同的词。

那么如何对returns具有整个字段值的数组的整个字段应用分面查询?

用于分面的字段MerchantName。此字段应在 schema.xml 中定义为字符串 (type="string"),以便 facet 使用整个文本。

当您使用字段类型为 text_general 的基于文本的字段时,该值将被拆分为多个标记。 MerchantName字段也是如此。

否则会按照token化的方式进行划分

您还可以为字段 MerchantName 添加 docValues="true",然后每当该字段用于排序、分面或函数查询时,都会自动使用 DocValues。

对于分面 Solr 可以使用 DocValues - 这是一种在内部记录字段值的特殊方式,对于某些目的,例如排序和分面,比传统索引更有效。