使用Java API从Elasticsearch获取所有记录

使用Java API从Elasticsearch获取所有记录,第1张

使用Java API从Elasticsearch获取所有记录

是的,您可以使用Java客户端也支持的滚动API来实现。

您可以这样做:

Client client;try {    client = TransportClient.builder().build(). addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));    QueryBuilder qb = QueryBuilders.boolQuery().mustNot(QueryBuilders.termQuery("user_agent", ""));    SearchResponse scrollResp = client.prepareSearch("demo_risk_data")        .addSort(SortParseElement.DOC_FIELD_NAME, SortOrder.ASC)        .setScroll(new Timevalue(60000))        .setQuery(qb)        .setSize(100).execute().actionGet();    //Scroll until no hits are returned    while (true) {        //Break condition: No hits are returned        if (scrollResp.getHits().getHits().length == 0) { break;        }        // otherwise read results        for (SearchHit hit : scrollResp.getHits().getHits()) { JSonObject value = new JSonObject(searchData.getSource()); System.out.println(value.toString());        }        // prepare next query        scrollResp = client.prepareSearchScroll(scrollResp.getScrollId()).setScroll(new Timevalue(60000)).execute().actionGet();    }}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4977629.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存