java链接es,springboot集成es

springboot项目,某日同事说,这个接口的数据不插mysql了,存到es里面了,改一下吧,什么是es?怎么改?什么是es我就不写了,直接来代码吧

1、查看es版本

怎么查看你的es版本,访问http://ip:port/  换成你自己的,如果有账密的会让你输入账密,里面的number就是版本号

 2.根据版本导入依赖

<dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>6.5.2</version>
        </dependency>

        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>6.5.2</version>
        </dependency>

3.写单测



import com.alibaba.fastjson.JSON;
import org.apache.http.HttpHost;
import org.apache.http.auth.AuthScope;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.CredentialsProvider;
import org.apache.http.impl.client.BasicCredentialsProvider;
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.SearchRequest;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.QueryBuilders;
import org.junit.Test;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * @Author: lxx
 * @Date: 2022/7/13 上午10:00
 */
public class TestE {
//查询
    @Test
    public void highClient() throws IOException {
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY,
                new UsernamePasswordCredentials("USER_NAME", "PASSWORD"));  //es账号密码(默认用户名为elastic)
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("IP", 9200, "http"))
                        .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                            public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                                httpClientBuilder.disableAuthCaching();
                                return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                            }
                        }));
        SearchRequest request = new SearchRequest("INDEX_NAME");
        request.source().query(QueryBuilders.matchQuery("user_id","000UC020000130481"));
//        request.source().query(QueryBuilders.matchAllQuery());
        //发起请求,得到响应结果
        SearchResponse response = client.search(request, RequestOptions.DEFAULT);
        //输出响应结果
        System.out.println(JSON.toJSONString(response));
    }
//插入

    @Test
    public void testInsert() {
        final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
        credentialsProvider.setCredentials(AuthScope.ANY,
                new UsernamePasswordCredentials("USER_NAME", "PASSWORD"));  //es账号密码(默认用户名为elastic)
        RestHighLevelClient client = new RestHighLevelClient(
                RestClient.builder(
                        new HttpHost("IP", 9200, "http"))
                        .setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
                            public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
                                httpClientBuilder.disableAuthCaching();
                                return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
                            }
                        }));
        IndexRequest request = new IndexRequest("INDEX","TYPE","IP");
        Map<String, Object> jsonMap = new HashMap<>();
        jsonMap.put("age", "10");
        jsonMap.put("class_name", "2");
        jsonMap.put("teacher", "Elly");

        request.source(jsonMap);
        IndexResponse response = null;
        try {
            response = client.index(request, RequestOptions.DEFAULT);
            if(response.getResult().name().equalsIgnoreCase("created")){

                System.out.println("OK");
            }else {
                System.out.println("ERROR");
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

注意把里面的相关信息改成你自己的啊,ps我链接es的版本是6.5.2如果你的版本,由于版本差太多代码可能也会无效的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Spring Boot集成Elasticsearch Java API Client,你可以按照以下步骤进行操作: 1. 首先,你需要在你的项目中添加Elasticsearch的依赖。可以在官方文档()中找到相关的依赖信息。 2. 接下来,你可以通过创建低级别的RestClient来连接到Elasticsearch。你可以使用以下代码片段来创建一个基于RestClient的传输对象: ```java RestClient restClient = RestClient.builder(new HttpHost("localhost", 9200)).build(); ElasticsearchTransport transport = new RestClientTransport(restClient, new JacksonJsonpMapper()); ElasticsearchClient client = new ElasticsearchClient(transport); ``` 3. 一旦你建立了与Elasticsearch的连接,你就可以使用ElasticsearchClient来执行各种操作。比如,你可以使用以下代码来创建一个索引: ```java CreateIndexResponse createIndexResponse = client.indices().create(c -> c.index("newapi")); ``` 在这个例子中,"newapi"是你要创建的索引的名称。 所以,以上是使用Spring Boot集成Elasticsearch Java API Client的基本步骤。你可以根据你的具体需求进一步使用Elasticsearch的API来完成其他操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [springboo整合elasticSearch8 java client api](https://blog.csdn.net/A434534658/article/details/125239480)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值