我有记录,版本,标题和过期字段的数据。 Record是一个非唯一字段,每个记录可以有多个版本。
在搜索结果中,我只需显示每个版本中的一个。
因此,可以按标题搜索特定日期之前/之前的文章,但只返回每个版本的一个结果。
例如,鉴于此数据:
{"record": 1, "version": 1, "title": "Hello", "expires": "2011-08-17 00:00:00"},
{"record": 1, "version": 2, "title": "Hello", "expires": "2012-08-17 00:00:00"},
{"record": 2, "version": 1, "title": "Hello world", "expires": "2010-08-17 00:00:00"},
{"record": 2, "version": 2, "title": "Hello world", "expires": "2011-08-17 00:00:00"},
{"record": 2, "version": 3, "title": "Hello world", "expires": "2012-08-17 00:00:00"},
在2012-08-18之前/之前搜索标题中包含“Hello”的文档,应返回:
{"record": 1, "version": 2, "title": "Hello", "expires": "2012-08-17 00:00:00"},
{"record": 2, "version": 3, "title": "Hello world", "expires": "2012-08-17 00:00:00"}
(每条记录的最新“版本”)。
有什么想法吗?
我是否必须在ES之外迭代结果? 谢谢你的阅读!
答案 0 :(得分:1)
你想要的是字段折叠,它是Apache Solr拥有的少数功能之一,而ElasticSearch则没有。
http://wiki.apache.org/solr/FieldCollapsing
ElasticSearch中有很多关于此功能的请求,但尚未实现。