java 操作es api

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: java 操作es api

1.pom

 

org.elasticsearch.client
    elasticsearch-rest-high-level-client
    6.3.1

2.es 操作类

package com.vince.xq.common;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.entity.ContentType;
import org.apache.http.nio.entity.NStringEntity;
import org.apache.http.util.EntityUtils;
import org.elasticsearch.client.Response;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.client.transport.TransportClient;
import java.io.IOException;
import java.net.UnknownHostException;
import java.util.Collections;
import java.util.Map;
/**
 * @author
 * @Date 2019-11-13 15:56
 **/
public class EsClient {
    private static volatile RestClient client;
    private EsClient() {
    }
    public static RestClient getInstance(String url, int port) throws UnknownHostException {
        if (client == null) {
            synchronized (EsClient.class) {
                if (client == null) {
                    client = RestClient
                            .builder(new HttpHost(url, port, "http"))
                            .build();
                    return client;
                }
            }
        }
        return client;
    }
    public static JSONObject getSource(RestClient client, String queryStr, String index, String type) throws IOException {
        Map params = Collections.emptyMap();
        HttpEntity entity = new NStringEntity(queryStr, ContentType.APPLICATION_JSON);
        String search = "/" + index + "/" + type + "/_search";
        Response response = client.performRequest("GET", search, params, entity);
        String responseBody = null;
        responseBody = EntityUtils.toString(response.getEntity());
        System.out.println(response.getStatusLine().getStatusCode());
        if (response.getStatusLine().getStatusCode() == 200) {
            JSONObject jsonObject = JSONObject.parseObject(responseBody);
            JSONObject object = JSONObject.parseObject(jsonObject.get("hits").toString());
            System.out.println(object.getString("hits"));
            JSONArray jsonArray = JSONObject.parseArray(object.getString("hits"));
            if (jsonArray.size() == 0) {
                System.out.println("null");
                return null;
            }
            JSONObject source = JSONObject.parseObject(JSONObject.parseObject(jsonArray.get(0).toString()).getString("_source"));
            return source;
        } else {
            return null;
        }
    }
}


3.调用

String queryString = "{\"query\":{\"match\":{\"id\":\"" + userId + "\"}}}";
JSONObject userObject = EsClient.getSource(client, queryString, "sys_user_test", "user");


相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
1月前
|
Java API 数据处理
Java新特性:使用Stream API重构你的数据处理
Java新特性:使用Stream API重构你的数据处理
|
1月前
|
Java 大数据 API
Java Stream API:现代集合处理与函数式编程
Java Stream API:现代集合处理与函数式编程
194 100
|
1月前
|
Java API 数据处理
Java Stream API:现代集合处理新方式
Java Stream API:现代集合处理新方式
217 101
|
1月前
|
并行计算 Java 大数据
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
189 101
|
2月前
|
JSON Java API
【干货满满】分享京东API接口到手价,用Java语言实现
本示例使用 Java 调用京东开放平台商品价格及优惠信息 API,通过商品详情和促销接口获取到手价(含优惠券、满减等),包含签名生成、HTTP 请求及响应解析逻辑,适用于比价工具、电商系统集成等场景。
|
2月前
|
存储 Java API
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
338 188
|
2月前
|
存储 Java API
Java Stream API:现代数据处理之道
Java Stream API:现代数据处理之道
244 92
|
3月前
|
Oracle Java 关系型数据库
掌握Java Stream API:高效集合处理的利器
掌握Java Stream API:高效集合处理的利器
355 80
|
3月前
|
安全 Java API
Java 8 Stream API:高效集合处理的利器
Java 8 Stream API:高效集合处理的利器
242 83
|
1月前
|
安全 Java API
使用 Java 构建强大的 REST API 的四个基本技巧
本文结合探险领域案例,分享Java构建REST API的四大核心策略:统一资源命名、版本控制与自动化文档、安全防护及标准化异常处理,助力开发者打造易用、可维护、安全可靠的稳健API服务。
144 2