Ошибка поиска по диапазону дат с использованием API Java для ElasticSearch - PullRequest
0 голосов
/ 31 января 2019

Я могу успешно выполнить и запрос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;
}

После того, как я решу эту проблему, мне действительно потребуется запросить все поля, содержащие дату для заданного диапазона.Я хотел избежать знания имен полей.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...