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

Get list of all distinct values in multivalued field in Solr

我在 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 获取此列表的最佳方式是什么?

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

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

试试这个

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

除分面之外的另一种选择是像这样使用 LukeRequestHandler

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

并阅读 topTerms 属性