有没有办法构造一个查询,以便它可以识别/返回特定字段重复的文档。我正在寻找的是 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 小时才能爬行。
这可以很容易地在 Solr 中完成。
首先,确保您的 schema.xml 是平方的,您将执行此操作的字段需要被存储和索引。字段的类型应该是字符串(这将保持数据原样,无需标记化)。
接下来,为您的内容编制索引并为其运行查询,假设字段名称为 field1。
q=*:*&facet=true&facet.field=field1&facet.mincount=1
您将得到 field1 的所有值的响应以及相同值的计数。