需要一些帮助。 我的文档有一个版本字段。只有更新的文档才会有一个增加版本号的新记录。
示例:
{id:1 , version:1,…}
{id:1 , version:2,….} //This has been updated
{id:2 , version:1,…}
在上面的例子中,id = 1有两条记录,因为它已被更新。虽然id = 2有一条记录,因为它尚未更新,但仍然位于版本1上。
现在在弹性搜索中是否有任何查询可以获得最大版本。 示例:获取唯一文档TILL版本1应该给出结果:
{id:1 , version:1,…}
{id:2 , version:1,…}
虽然获得第2版的独特文件应该给出:
{id:1 , version:2,….}
{id:2 , version:1,…}
(在上面的结果中有版本1和版本2的混合)
谢谢, 卡兰
答案 0 :(得分:1)
在弹性搜索中没有简单的方法可以实现这一点(至少在实现Field Collapsing/Combining之前)。我建议维护两个索引:一个用于所有具有自动生成ID的版本,另一个索引仅包含最新版本,并且记录的id
字段为id。当您需要所有版本时,可以搜索第一个索引,当您只需要最新版本时,可以搜索第二个索引。
另一种解决方案是以某种方式表明记录代表最新版本。可以通过添加布尔字段“latest”来完成,这意味着在添加新记录时您必须使用先前的最新版本重新编制索引,或者您可以添加将跟踪每个记录的最新版本的子文档