gpt4 book ai didi

java - 适用于N个查询的MultiSearch API

转载 作者:行者123 更新时间:2023-12-02 22:23:37 25 4
gpt4 key购买 nike

我有以下示例代码,发送的查询数量取决于我构造了多少SearchRequestBuilder并将其添加到MultiSearchResponse。

public static void requestBuilder(ArrayList<String> formulae) {

Client client = TransportClient.builder().build()
.addTransportAddress(new InetSocketTransportAddress(new InetSocketAddress("localhost",9300)));

SearchRequestBuilder srb1 = client
.prepareSearch(index)
.setSource(formulae.get(1));
SearchRequestBuilder srb2 = client
.prepareSearch(index)
.setSource(formulae.get(2));

MultiSearchResponse sr = client.prepareMultiSearch()
.add(srb1)
.add(srb2)
.execute()
.actionGet();

long nbHits = 0;
for (MultiSearchResponse.Item item : sr.getResponses()){
SearchResponse response = item.getResponse();
nbHits += response.getHits().getTotalHits();
System.out.println(response);
}
System.out.println(nbHits);
System.out.println(formulae.size());


client.close();


}

有什么方法可以生成[公式大小]数量的SearchRequestBuilder?因此,我可以查询ArrayList的每个元素。

最佳答案

您可以简单地遍历公式,然后将其一个接一个地添加到多重搜索中,然后触发多重搜索请求。

MultiSearchRequestBuilder sr = client.prepareMultiSearch();
for (String formula : formulae) {
SearchRequestBuilder srb = client
.prepareSearch(index)
.setSource(formula);
sr.add(srb);
}
MultiSearchResponse resp = sr.execute().actionGet();

关于java - 适用于N个查询的MultiSearch API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40920170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com