首页 > 解决方案 > 在 SOLR facet.pivot 分组中获得意外输出

问题描述

我正在尝试使用facet.pivot选项对 Solr 中的字段进行分组。当实际数据中没有特殊字符时,它按预期工作。如果实际数据中有任何特殊字符,则输出将分成许多。

下面是我尝试使用 facet.pivot 分组的 url。这里 escalation_dl 是包含一些特殊字符的电子邮件地址

/select?facet=true&facet.limit=-1&facet.pivot=job_name,escalation_dl&q=*:*

实际输出:

"field":"job_name",
          "value":"test_job1",
          "count":1,
          "pivot":[{
              "field":"escalation_dl",
              "value":"test",
              "count":1},
            {
              "field":"escalation_dl",
              "value":"gmail.com",
              "count":1}]}

预期产出

"field":"job_name",
          "value":"test_job1",
          "count":1,
          "pivot":[{
              "field":"escalation_dl",
              "value":"test@gmail.com",
              "count":1}]}

标签: solrsolrj

解决方案


这是因为您正在处理的字段具有一个字段类型,该字段类型带有一个 Tokenizer 和附加的过滤器(例如默认text_general字段)。string为您想要分面的任何字段使用一个字段,因为这将使值保持您期望的完整。


推荐阅读