我有一个名为event的索引,它有大约250条记录。我想删除这250条记录而不删除完整的映射。
DeleteIndex delete = new DeleteIndex.Builder("events").build();
client.execute(delete);
上面的代码删除了完整的事件索引。如何才能删除内容?
答案 0 :(得分:2)
基于ElasticSearch文档Delete By Query API,您可以使用以下查询删除索引中的所有文档:
POST twitter/tweet/_delete_by_query
{
"query": {
"match_all": {}
}
}
使用ElasticSearch Java API "Delete By Query API" documentation:
BulkByScrollResponse response =
DeleteByQueryAction.INSTANCE.newRequestBuilder(client)
.filter(QueryBuilders.matchQuery("gender", "male"))
.source("persons")
.get();
long deleted = response.getDeleted();
请注意,此答案适用于 ElasticSearch 6.1 ,但对于其他版本的ElasticSearch可能会有所不同。
我希望这会对你有所帮助。
答案 1 :(得分:0)
由于我使用的是spring数据,因此我可以使用deleteAll功能解决此问题。
eventRepo.deleteAll();
为我做了诀窍。