如何通过最大字段获取所有唯一文档



我正在为Liferay 6.2应用程序开发搜索功能,但我很难获得最新的文章。

出于某些原因,客户希望在Solr中跟踪Liferay Journal文章的所有版本。这意味着每个"版本"都被存储为一个单独的文档,其中有一个递增的version字段。为了搜索的目的,我需要获取最新的一个。

例如,如果我在Solr中有一篇这样的期刊文章: [{ articleId:"123456", title:"Sample Doc 1", content:"abc 123 xyz", version:"1.0" }, { articleId:"222111", title:"Sample Doc 2", content:"1111", version:"1.0" }, { articleId:"222111", title:"Sample Doc 2", content:"2222", version:"1.1" }, { articleId:"123456", title:"Sample Doc 1", content:"xxx xxx 1234556", version:"1.1" }, { articleId:"222111", title:"Sample Doc 2", content:"3333", version:"1.2" }]

我查询了所有我希望得到结果的文件: [{ articleId:"123456", title:"Sample Doc 1", content:"xxx xxx 1234556", version:"1.1" }, { articleId:"222111", title:"Sample Doc 2", content:"3333", version:"1.2" }]

注意到我只检索了每个具有最大version的唯一articleId

我正在研究的确切版本是:Liferay 6.2.ee sp11(带有一些补丁)Tomcat 7.0.64 下的Solr 4.10.4

我试着在谷歌上搜索答案,但我不确定我在这里搜索的是什么。我不认为分方面是答案,分组似乎并没有得到我需要的结果。

您可以使用分组或折叠过滤器。根据我的经验,折叠过滤器比分组快得多。以下是它应该如何用于您的案例:

fq={!collapse field=articleId max=version}

最新更新