"Group by" 在使用 solrj 的 solr 字段上
"Group by" on a solr field using 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 代码处理它。但是有什么方法可以对特定字段进行分组和计数吗?
这称为 faceting 并为您提供字段中每个索引词的计数。如果您想要为完整文本生成计数(即您想要计算 New York
而不是 New
和 York
),请务必将每个术语保留为单个标记。字符串字段通常非常适合作为分面的字段类型。
对于 SolrJ 集成,您在查询中使用 .addFacetField("type")
,然后您可以在响应对象上使用 getFacetField("type")
。
我正在使用 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 代码处理它。但是有什么方法可以对特定字段进行分组和计数吗?
这称为 faceting 并为您提供字段中每个索引词的计数。如果您想要为完整文本生成计数(即您想要计算 New York
而不是 New
和 York
),请务必将每个术语保留为单个标记。字符串字段通常非常适合作为分面的字段类型。
对于 SolrJ 集成,您在查询中使用 .addFacetField("type")
,然后您可以在响应对象上使用 getFacetField("type")
。