1

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

4

3 回答 3

1

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

  1. https://cwiki.apache.org/confluence/display/solr/Faceting
  2. https://lucidworks.com/blog/2009/09/02/faceted-search-with-solr/
于 2016-09-29T04:39:21.207 回答
1

试试这个

http://localhost:8983/solr/core/select?q=*&facet=true&facet.field=strings_ss
于 2016-09-29T05:11:45.787 回答
1

除了 faceting 之外的另一个选择是像这样使用LukeRequestHandler

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

并读取topTerms属性

于 2016-09-29T16:14:14.657 回答