gpt4 book ai didi

java - 如何使用Java返回Elasticsearch中的所有结果?

转载 作者:行者123 更新时间:2023-11-30 07:26:30 25 4
gpt4 key购买 nike

我有一个在elasticsearch中索引的数据集。 (索引名称:demoindex1,类型名称:SearchTech)。我想使用 Java 以 JSON 格式返回所有结果。我的Java代码如下:

import java.net.InetAddress;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.search.SearchHit;

public class App {

public static void main(String[] args) throws Exception {
Client client = TransportClient.builder().build().addTransportAddress(
new InetSocketTransportAddress(InetAddress.getByName("localhost"),
9300));

SearchResponse scrollResp = client.prepareSearch("demoindex1")
.setScroll(new TimeValue(60000)).setTypes("SearchTech").setSize(1000)
.execute().actionGet();
// Scroll until no hits are returned
while (true) {

for (SearchHit hit : scrollResp.getHits()) {
System.out.println(hit.getSourceAsString()); //hit.get
}
scrollResp = client.prepareSearchScroll(scrollResp.getScrollId())
.setScroll(new TimeValue(60000)).execute().actionGet();
// Break condition: No hits are returned
if (scrollResp.getHits().getHits().length == 0) {
break;
}
}
}
}

我的java程序返回每个命中的源部分。但我想在 Elasticsearch 中使用查询 GET index/type/_search 获取所有结果。我需要 JSON 格式的结果数据集。我在这里做错了什么?

-我已经阅读了elasticsearch的JAVA文档,但我找不到任何关于获取所有结果数据集的信息。

谢谢。

最佳答案

我无法发表评论,所以我只能在这里写下我的评论:我可能已经理解了你的问题,但如果我错了,请纠正我。

如果你想获取 GET index/type/_search 的整个 JSON,为什么不尝试使用scrollResp.toString()呢?然后,您可以使用丰富的可用库之一从字符串中读取 JSON 树,例如 com.fasterxml.jackson。

或者,如果您正在寻找命中的 _source 的 JSON,您可以使用这些库将 hit.getSourceAsString() 的结果转换为 JSON。

关于java - 如何使用Java返回Elasticsearch中的所有结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36757319/

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