0
我試圖刪除ES中當前時間爲1小時的「lastRefresh」字段的所有記錄。我在SOAP UI(HTTP 400,SearchPhaseExecutionException)中遇到了一個分析錯誤,但它對我沒有意義。我已經驗證過我的日期代碼正在工作,但對於ES來說是新手,我確信我在某處出現了一個菜鳥錯誤......下面是我在Java中的代碼以及從調試器中獲得的嘗試在SOAP UI中測試的代碼。 :Java中的ElasticSearch刪除
RangeFilterBuilder range = FilterBuilders.rangeFilter(LAST_REFRESH_FIELD);
DateTime expiredLimit = DateTime.now().minusHours(1);
range.from(0);
range.to(expiredLimit.getMillis());
FilteredQueryBuilder query = QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(), range);
DeleteByQueryRequestBuilder deleteRequest = elasticClient.prepareDeleteByQuery(INDEX_NAME);
deleteRequest.setQuery(query);
DeleteByQueryResponse response = deleteRequest.execute().actionGet();
if (response.status() == RestStatus.OK)
{
result = true;
}
else
{
log.info("deleted record was not found.");
}
{
"filtered" : {
"query" : {
"match_all" : { }
},
"filter" : {
"range" : {
"lastRefresh" : {
"from" : 0,
"to" : 1429129890507,
"include_lower" : true,
"include_upper" : true
}
}
}
}
}