我無法弄清楚用于多搜索請求的新 ElasticsearchClient#Msearch Java API。
在 7.17 版中,我使用了這樣的 Multisearch 請求:
MultiSearchRequest request = new MultiSearchRequest();
List<SearchRequest> searchRequests = getSearchRequests();
MultiSearchResponse multiSearchResponse = restClient.msearch(searchRequests, RequestOptions.DEFAULT);
使用新 API,您必須使用ElasticsearchClient#mSearch(MsearchRequest request, Class<TDocument> tDocumentClass). 在MsearchRequest您可以添加RequestItemwith MsearchRequest.Builder#searches(List<RequestItem> list),但是RequestItemcontainsMultisearchHeader并且MultisearchBody但不實作SearchRequest物件中的任何內容。
關于我必須改變什么的任何建議,使用ElasticsearchClient#mSearch?
uj5u.com熱心網友回復:
你可以使用這個簡單的代碼來測驗:
var response = client.msearch(MsearchRequest.of(ms -> ms.searches(
List.of(RequestItem.of(ri -> ri
.header(MultisearchHeader.of(mh -> mh.index("idx_movies")))
.body(MultisearchBody.of(msb -> msb.query(MatchAllQuery.of(ma -> ma)._toQuery()))
)),
RequestItem.of(ri -> ri
.header(MultisearchHeader.of(mh -> mh.index("idx_cars")))
.body(MultisearchBody.of(msb -> msb.query(MatchAllQuery.of(ma -> ma)._toQuery()))
)))
)),
Object.class);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/530376.html
標籤:爪哇弹性搜索
