迁移ElasticSearch客户端#Msearch JavaApi(8.5)

ma8fv8wu  于 2022-11-22  发布在  ElasticSearch
关注(0)|答案(1)|浏览(211)

我不能弄清楚新的ElasticsearchClient#Msearch Java API的多搜索请求。
在7.17版本中,我使用了如下的Multisearch请求:

MultiSearchRequest request = new MultiSearchRequest();
    List<SearchRequest> searchRequests = getSearchRequests();
    MultiSearchResponse multiSearchResponse = restClient.msearch(searchRequests, RequestOptions.DEFAULT);

MsearchRequest中,您可以将RequestItemMsearchRequest.Builder#searches(List<RequestItem> list)相加,但是RequestItem包含MultisearchHeaderMultisearchBody,但不实现SearchRequest对象中的任何内容。
有什么建议,我必须改变,使用ElasticsearchClient#mSearch

epfja78i

epfja78i1#

您可以使用以下简单代码进行测试:

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);

相关问题