获取Solr中多值字段中所有不同值的列表

时间:2016-09-28 23:12:16

标签: solr solarium

我在Solr中有从postgres数据库导入的数据。文档看起来像这样(非常简化):

"docs": [
      {
        "id": "1",
        "strings_ss": [
          "abc",
          "bcd",
          "efg",
        ],
        "_version_": 1546754105942212600
      },
      {
        "id": "2",
        "strings_ss": [
          "abc",
          "hig",
        ],
        "_version_": 1546754105942212600
      },
      {
        "id": "3",
        "strings_ss": [
          "bcd",
          "aaa",
        ],
        "_version_": 1546754105942212600
      }
   ]

我想在strings_ss

中获取一系列唯一值
"abc","bcd","efg","hig","aaa"

使用单个值字段,我使用分组。但是,对于具有错误的多值字段,它会失败:can not use FieldCache on multivalued field:

从Solr获取此列表的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

您可以使用solr facet查询来获取字段的唯一值。它将为您提供字段和频率的唯一值(没有文档具有该唯一值)。有关详细信息,请查看以下链接

  1. https://cwiki.apache.org/confluence/display/solr/Faceting
  2. https://lucidworks.com/blog/2009/09/02/faceted-search-with-solr/

答案 1 :(得分:1)

试试这个

http://localhost:8983/solr/core/select?q=*&facet=true&facet.field=strings_ss

答案 2 :(得分:1)

除了分面之外的另一个选择是使用LukeRequestHandler,如下所示:

http://localhost:8983/solr/core/admin/luke?wt=json&fl=strings_ss&numTerms=....

并阅读topTerms属性