Результат поиска Elastic DSL Query значительно превосходит Rest High Level Client - PullRequest
0 голосов
/ 18 января 2019

Я использовал Elastic DSLQuerySearch и RestHighLevelClient и обнаружил, что DSLQuerySearch результаты намного лучше и конкретнее, чем RestHighLevelClient. Я что-то пропустил? Совместное использование разных кодов

DSLQuerySearch

    String result = a.executeDSLQuerySearch(
            INDEX
            + "/"
            + TYPE
            + "/_search?pretty&filter_path=hits.hits._source&_source=field1,field2,field3",
            searchQuery
    );

против RestHighLevelClient

    SearchRequest searchRequest = new SearchRequest(INDEX);
    SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
    searchSourceBuilder.fetchSource(includeFields, excludeFields);

    /* Choose field match or matchAllQuery. */
    searchSourceBuilder.query(QueryBuilders.multiMatchQuery(query, "field1", "field2", "field3"));

    searchSourceBuilder.query(geoDistanceQuery("geo")
            .geohash(geoHash)
            .distance(Constants.MAX_Q_SEARCH_DISTANCE, DistanceUnit.KILOMETERS));
    searchSourceBuilder.sort(new GeoDistanceSortBuilder("geo", geoHash).order(SortOrder.DESC));
    searchSourceBuilder.size(PaginationEnum.TEN.getLimit());
    searchRequest.source(searchSourceBuilder);
    searchRequest.scroll(TimeValue.timeValueMinutes(MINUTES));

    searchResponse = a.restHighLevelClient().search(searchRequest, RequestOptions.DEFAULT);

Результат, который я ожидаю, более конкретен. RestHighLevelClient дает очень общий результат. (читать дальше не имеет отношения), тогда как DSLQuerySearch находится на месте.

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