修改
为了澄清,问题是“如何为X天以前的文档编写查询,以便我可以删除它们。”
END OF EDIT
我们的代码使用ElasticSearch对来自查询的结果进行索引。我们希望每天运行一次清理工作来删除所有旧文档。我们目前通过调用外部脚本来实现这一目标,但是为了减少依赖关系,我们希望从Java中做到这一点。
我无法弄清楚如何使用API查询旧文档...线索,帮助?
答案 0 :(得分:3)
如果删除已存储一段时间的文档,则可以设置TTL(生存时间)参数,并在此时间结束后设置文档删除位设置标志。见here。希望这是你可以考虑的另一种选择。
<强>更新强>
"query":{
"match_all": {}
},
"filter":{
range:{
"field":{
lte: 20140225,
gte: 20140201
}
}
}
答案 1 :(得分:0)
我假设你想通过查询删除。所以这是Java API
http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/delete-by-query.html
的
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
用于删除日期范围使用范围查询
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-range-query.html
e.g。与range: lt: '2014-01-01'