springboot集成elasticsearch7的图文方法

目录1.创建项目2.创建配置文件3.测试4.更新文档5.删除文档

1.创建项目

修改依赖版本

2.创建配置文件

package com.huanmingjie.elasticsearch.config;import org.apache.http.HttpHost;import org.elasticsearch.client.RestClient;import org.elasticsearch.client.RestHighLevelClient;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class ElasticsearchClientConfig {    @Bean    public RestHighLevelClient restHighLevelClient() {        RestHighLevelClient client = new RestHighLevelClient(                RestClient.builder(                        new HttpHost("localhost", 9200, "http")));        return client;    }}

3.测试

3.1索引操作

1.创建索引

2.判断索引是否存在

3.删除索引

索引操作代码

package com.huanmingjie.elasticsearch;import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;import org.elasticsearch.action.support.master.AcknowledgedResponse;import org.elasticsearch.client.RequestOptions;import org.elasticsearch.client.RestHighLevelClient;import org.elasticsearch.client.indices.CreateIndexRequest;import org.elasticsearch.client.indices.CreateIndexResponse;import org.elasticsearch.client.indices.GetIndexRequest;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import java.io.IOException;@SpringBootTestclass ElasticsearchApplicationTests {    @Autowired    private RestHighLevelClient restHighLevelClient;    //创建索引 PUT zoomy_index    @Test    void createIndex() throws IOException {        CreateIndexRequest request = new CreateIndexRequest("zoomy_index");        restHighLevelClient.indices().create(request, RequestOptions.DEFAULT);    }    //判断索引是否存在    @Test    void getIndex() throws IOException {        GetIndexRequest request = new GetIndexRequest("zoomy_index");        boolean exists = restHighLevelClient.indices().exists(request, RequestOptions.DEFAULT);        System.out.println(exists);    }    //删除索引    @Test    void deleteIndex() throws IOException {        DeleteIndexRequest request = new DeleteIndexRequest("zoomy_index");        AcknowledgedResponse delete = restHighLevelClient.indices().delete(request, RequestOptions.DEFAULT);        System.out.println(delete.isAcknowledged());    }}

3.2文档操作

创建实体类

package com.huanmingjie.elasticsearch.pojo;import org.springframework.stereotype.Component;@Componentpublic class User {    private String name;    private int age;    public User() {    }    public User(String name, int age) {        this.name = name;        this.age = age;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }}

1.添加文档

2.获取文档,判断是否存在

3.获取文档信息

4.更新文档

5.删除文档

3.3实战操作

批量创建数据

查询

package com.huanmingjie.elasticsearch;import com.alibaba.fastjson.JSON;import com.huanmingjie.elasticsearch.pojo.User;import com.huanmingjie.elasticsearch.utils.ESConstant;import net.minidev.json.JSONObject;import org.apache.lucene.util.QueryBuilder;import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;import org.elasticsearch.action.bulk.BulkRequest;import org.elasticsearch.action.bulk.BulkResponse;import org.elasticsearch.action.delete.DeleteRequest;import org.elasticsearch.action.delete.DeleteResponse;import org.elasticsearch.action.get.GetRequest;import org.elasticsearch.action.get.GetResponse;import org.elasticsearch.action.index.IndexRequest;import org.elasticsearch.action.index.IndexResponse;import org.elasticsearch.action.search.SearchRequest;import org.elasticsearch.action.search.SearchRequestBuilder;import org.elasticsearch.action.search.SearchResponse;import org.elasticsearch.action.support.master.AcknowledgedResponse;import org.elasticsearch.action.update.UpdateRequest;import org.elasticsearch.action.update.UpdateResponse;import org.elasticsearch.client.Request;import org.elasticsearch.client.RequestOptions;import org.elasticsearch.client.RestHighLevelClient;import org.elasticsearch.client.indices.CreateIndexRequest;import org.elasticsearch.client.indices.GetIndexRequest;import org.elasticsearch.common.unit.TimeValue;import org.elasticsearch.common.xcontent.XContentType;import org.elasticsearch.index.query.MatchAllQueryBuilder;import org.elasticsearch.index.query.QueryBuilders;import org.elasticsearch.index.query.TermQueryBuilder;import org.elasticsearch.search.SearchHit;import org.elasticsearch.search.builder.SearchSourceBuilder;import org.elasticsearch.search.fetch.subphase.FetchSourceContext;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import javax.naming.directory.SearchResult;import java.io.IOException;import java.lang.reflect.Array;import java.util.ArrayList;import java.util.concurrent.TimeUnit;@SpringBootTestclass ElasticsearchApplicationTests {    @Autowired    private RestHighLevelClient restHighLevelClient;    //创建索引 PUT zoomy_index    @Test    void createIndex() throws IOException {        CreateIndexRequest request = new CreateIndexRequest("zoomy_index");        restHighLevelClient.indices().create(request, RequestOptions.DEFAULT);    }    //判断索引是否存在    @Test    void getIndex() throws IOException {        GetIndexRequest request = new GetIndexRequest("zoomy_index");        boolean exists = restHighLevelClient.indices().exists(request, RequestOptions.DEFAULT);        System.out.println(exists);    }    //删除索引    @Test    void deleteIndex() throws IOException {        DeleteIndexRequest request = new DeleteIndexRequest("zoomy_index");        AcknowledgedResponse delete = restHighLevelClient.indices().delete(request, RequestOptions.DEFAULT);        System.out.println(delete.isAcknowledged());    }    //添加文档 PUT zoomy_index/_doc/1    @Test    void addDocument() throws IOException {        User user = new User("zoomy", 21);        IndexRequest request = new IndexRequest("zoomy_index");        request.id("1");        request.timeout(TimeValue.timeValueSeconds(1));        request.source(JSON.toJSONString(user), XContentType.JSON);        //客户端发送请求,获取响应结果        IndexResponse indexResponse = restHighLevelClient.index(request, RequestOptions.DEFAULT);        System.out.println(indexResponse.toString());        //命令返回的状态        System.out.println(indexResponse.status());    }    //获取文档,判断是否存在    @Test    void exitDocument() throws IOException {        GetRequest request = new GetRequest("zoomy_index", "1");        //不获取返回的_source的上下文,效率更高        request.fetchSourceContext(new FetchSourceContext(false));        request.storedFields("_none_");        boolean exists = restHighLevelClient.exists(request, RequestOptions.DEFAULT);        System.out.println(exists);    }    //获取文档信息    @Test    void getDocument() throws IOException {        GetRequest request = new GetRequest("zoomy_index", "1");        GetResponse getResponse = restHighLevelClient.get(request, RequestOptions.DEFAULT);        //打印文档内容        System.out.println(getResponse.getSourceAsString());        //返回全部内容        System.out.println(getResponse);    }    //更新文档 POST zoomy_index/_doc/1/_update    @Test    void updateDocument() throws IOException {        UpdateRequest request = new UpdateRequest("zoomy_index", "1");        request.timeout(TimeValue.timeValueSeconds(1));        User user = new User("zoomy", 22);        request.doc(JSON.toJSONString(user), XContentType.JSON);        UpdateResponse updateResponse = restHighLevelClient.update(request, RequestOptions.DEFAULT);        System.out.println(updateResponse.status());    }    //删除文档    @Test    void deleteDocument() throws IOException {        DeleteRequest request = new DeleteRequest("zoomy_index", "1");        DeleteResponse deleteResponse = restHighLevelClient.delete(request, RequestOptions.DEFAULT);        System.out.println(deleteResponse.status());    }    //批量处理数据    @Test    void bulkRequest() throws IOException {        BulkRequest bulkRequest = new BulkRequest();        bulkRequest.timeout(TimeValue.timeValueSeconds(10));        ArrayList<User> userList = new ArrayList<>();        userList.add(new User("zoomy1", 21));        userList.add(new User("zoomy2", 22));        userList.add(new User("zoomy3", 23));        for (int i = 0; i < userList.size(); i++) {            bulkRequest.add(                    new IndexRequest("zoomy_index")                            .id("" + (i + 1))                            .source(JSON.toJSONString(userList.get(i)), XContentType.JSON));        }        BulkResponse bulkItemResponses = restHighLevelClient.bulk(bulkRequest, RequestOptions.DEFAULT);        System.out.println(bulkItemResponses.hasFailures());    }    //批量处理数据    @Test    void searchRequest() throws IOException {        SearchRequest searchRequest = new SearchRequest(ESConstant.ZOOMY_INDEX);        //构建搜索条件        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();        //查询条件QueryBuilders工具  termQuery 精确查询 matchAllQuery匹配所有        TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("name", "zoomy1");//        MatchAllQueryBuilder matchAllQueryBuilder = QueryBuilders.matchAllQuery();        searchSourceBuilder.query(termQueryBuilder);        //from size有默认参数//        searchSourceBuilder.from();//        searchSourceBuilder.size();        searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));        searchRequest.source(searchSourceBuilder);        SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);        System.out.println(JSON.toJSONString(searchResponse.getHits()));        for (SearchHit hit : searchResponse.getHits().getHits()) {            System.out.println(hit.getSourceAsMap());        }    }}

以上就是springboot集成elasticsearch7的详细内容,更多关于springboot集成elasticsearch7的资料请关注其它相关文章!

累死累活不说,走马观花反而少了真实体验,

springboot集成elasticsearch7的图文方法

相关文章:

你感兴趣的文章:

标签云: