我在elasticsearch中保存了以下json数据:
{
"id":"1234",
"expirationDate":"17343234234",
"paths":"http:localhost:9090",
"work":"software dev",
"family":{
"baba":"jams",
"mother":"ela"
}
},
{
"id":"00021",
"expirationDate":"0123234",
"paths":"http:localhost:8080",
"work":"software engi",
"family":{
"baba":"stev",
"mother":"hela"
}
}
我想使用SpringDataElasticSearch中的querybuilder删除所有过期日期小于今天的ID列表
1条答案
按热度按时间h6my8fg21#
好吧,通过查询删除是一种方法。
java客户机文档表明您可以通过以下方式构建请求:
这被标记为从3.2版起受SpringDataElasticSearch支持。
例如,可以使用查询派生:
除了查询方法之外,还可以使用count和delete查询的查询派生。
在附录c中,你可以看到
IsLessThan
是一个查询派生关键字,这意味着应该支持以下内容:通过使用查询派生,您可以让spring来实现(祈祷它能做“正确的事情”)。
但你也可以使用
ElasticsearchRestTemplate#delete
(如果您使用的是旧的ElasticsearchTemplate
,其工作原理相同)。这允许您传入任何spring数据查询(本机、字符串或条件)。