簡體   English   中英

用Java刪除ElasticSearch

[英]ElasticSearch delete in Java

我正在嘗試刪除與ES中當前時間相比早於1小時的“ lastRefresh”字段的所有記錄。 我在SOAP UI(HTTP 400,SearchPhaseExecutionException)中遇到了解析錯誤,但是對我來說這沒有意義。 我已經驗證了我的日期代碼可以正常工作,但是對於ES來說,這是新手,所以我確定我在某個地方犯了一個菜鳥錯誤。以下是我在Java中的代碼以及從調試器中嘗試在SOAP UI中進行測試的結果。 :

  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 } } } } } 

問題是我忘了記得我使用的是祖魯時間(UTC),並且我在東部時區。 我正在測試不良數據...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM