Я могу успешно выполнить и запросasticSearch (ниже):
GET _search
{
"query": {
"range" : {
"InputRecord.originationMetadata.created": {
"gte" : "01/01/2019",
"lte" : "01/31/2019",
"format": "MM/dd/yyyy"
}
}
}
}
Однако, когда я пытаюсь реализовать с помощью API Java, он не возвращает строки (ниже):
public List<SearchHit> queryByDate(Date beginDate, Date endDate, String[] indices) {
List<SearchHit> esData = new ArrayList<SearchHit>();
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.rangeQuery("myInput.myMeta.created").gte(beginDate).lte(endDate).format("MM/dd/yyyy"));
SearchRequest searchRequest = new SearchRequest();
if (indices != null && indices.length > 0) {
searchRequest.indices(indices);
}
searchRequest.source(sourceBuilder);
SearchResponse searchResponse = null;
try {
searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
} catch (IOException ex) {
Logger.getLogger(ElasticSearchDAO1.class.getName()).log(Level.SEVERE, null, ex);
}
if (searchResponse != null) {
for (SearchHit sh : searchResponse.getHits()) {
esData.add(sh);
}
}
return esData;
}
После того, как я решу эту проблему, мне действительно потребуется запросить все поля, содержащие дату для заданного диапазона.Я хотел избежать знания имен полей.
Спасибо!