我需要在特定索引下只存储10个数字文档。并且第11项应该替换旧项目,即第1项。这样我任何时候都只有10个文档。 我在golang中使用elacticsearch
答案 0 :(得分:1)
如果您只想存储10个doc 你应该申请algo =(文件号%10)+1。 返回值是您的elasticsearch _id字段 algo retyrn只有1到10.并且总是将其编入索引。
答案 1 :(得分:-1)
我假设您将拥有文件的固定名称,例如1,2,...,10或其他。因此,一种方法可以是使用Redis实现循环列表https://redis.io/commands/rpoplpush#pattern-circular-list(您也可以实现自己的算法,通过代码实现循环列表)
所以基本上你应该按照下面的步骤进行操作:
1
如果你得到一个计数< 10您可以使用您的数据调用插入文档查询,并使用从列表中提取的编号作为文档名称。如果count = 10,则在ElasticSearch上调用更新文档查询
通告将以这种方式取得进展:
列表的初始状态为[1, 2, ...10]
。您提取1
并在提取后,它会转到列表的末尾:[2,3,..., 10,1]
[2, 3, ...10, 1]
。您提取2
并在解压缩后,它会转到列表的末尾:[3,4,..., 1,2]