Результат поиска Elastic DSL Query значительно превосходит Rest High Level Client
Я использую 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
на месте.