"分组"在solr字段上使用solrj

时间:2018-02-06 08:52:36

标签: java solr solrj

我正在使用SOLR 2.5.1

我有一个字段type。我正在使用SOLR Java驱动程序查询。我只在查询中提取type字段。

注意:查询字段和fl(在我的情况下为type)不同

说响应就像是

{
  "response": {
    "numFound": 200,
    "start": 0,
    "docs": [
      {
        "type": "A"
      },
        {
        "type": "B"
      },
       {
        "type": "A"
      },
        {
        "type": "A"
      },
       {
        "type": "C"
      },
       {
        "type": "D"
      },
       {
        "type": "A"
      },
       {
        "type": "B"
      },
       {
        "type": "C"
      },
       {
        "type": "B"
      }
    ]
  }
}

我需要对输出进行分组并找到发生的次数。输出如:

"A":4, "B":3, "C":2, "D":1

我可以在java代码中处理它。但有没有办法分组和指望一个特定的领域?

1 个答案:

答案 0 :(得分:1)

这称为faceting,并为您提供每个索引术语的计数。如果要生成完整文本的计数(即,您想要计算New York而不是NewYork),请务必将每个字词保留为单个标记。字符串字段通常非常适合作为要面对的字段类型。

对于SolrJ集成,在查询中使用.addFacetField("type"),然后可以在响应对象上使用getFacetField("type")