2015-04-15 34 views
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 
 
     } 
 
     } 
 
    } 
 
    } 
 
}

回答

0

問題是我忽略了要記住,我是用祖魯時間(UTC),和我在東部時區。我正在測試不良數據...