Результат поиска Elastic DSL Query значительно превосходит Rest High Level Client

Я использую ElasticDSLQuerySearch а также 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 на месте.

0 ответов

Другие вопросы по тегам