在 Solr 中查找重复值

Cod*_*imp 0 solr solr4

有没有办法构造一个查询,以便它可以识别/返回特定字段重复的文档。我正在寻找的是 SQL 中的等效项:

SELECT content, count(*) FROM documents GROUP BY content ORDER BY count(*) DESC
Run Code Online (Sandbox Code Playgroud)

基本上,给我内容相同的文件。我发现的所有内容都讨论了如何在插入时丢弃重复项,或者如何在搜索结果中删除它们。我尝试使用FieldCollapsing,但出现以下错误:

"error": {
  "msg": "can not use FieldCache on a field which is neither indexed nor has doc values: content",
  "code": 400
}
Run Code Online (Sandbox Code Playgroud)

基于错误,我认为它失败了,因为content没有编入索引。我尝试使用另一个索引而不是多值的字段来进行分组,该字段存储文档 URL,但我无法对结果组进行正面或反面,尤其是groupValue. 我可以尝试创建一个被索引的复制字段,但我不确定这是否会给我我正在寻找的东西,我的爬虫需要超过 24 小时才能爬行。

use*_*270 7

这可以很容易地在 Solr 中完成。

首先,确保您的 schema.xml 是平方的,您将执行此操作的字段需要被存储和索引。字段的类型应该是字符串(这将保持数据原样,无需标记化)。

接下来,为您的内容编制索引并为其运行查询,假设字段名称为 field1。

q=*:*&facet=true&facet.field=field1&facet.mincount=1

您将得到 field1 的所有值的响应以及相同值的计数。