• springboot集成elk 四:springboot + Elasticsearch+Jest


    依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    </dependency>
    <dependency>
        <groupId>io.searchbox</groupId>
        <artifactId>jest</artifactId>
    </dependency>
    <dependency>
        <groupId>com.sun.jna</groupId>
        <artifactId>jna</artifactId>
        <version>3.0.9</version>
    </dependency>

    配置文件: 

    #elasticsearch.jest
    spring.elasticsearch.jest.uris=http://192.168.1.62:9200
    spring.elasticsearch.jest.read-timeout=6000

    实体类: 

    public class Goods2Info implements Serializable {
        private static final long serialVersionUID = -7682211945335253642L;
        private Long id;
        private String name;
        private String description;
        public static final String INDEX_NAME = "test2";
    
        public static final String TYPE = "goods2";
    
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getDescription() {
            return description;
        }
    
        public void setDescription(String description) {
            this.description = description;
        }
    
        public Goods2Info(Long id, String name, String description) {
            this.id = id;
            this.name = name;
            this.description = description;
        }
    
        public Goods2Info() {
        }
    }

      

    jest客户端使用

    package com.test.elk.controller;
    
    import com.test.elk.model.Goods2Info;
    import io.searchbox.client.JestClient;
    import io.searchbox.client.JestResult;
    import io.searchbox.core.Bulk;
    import io.searchbox.core.Index;
    import io.searchbox.core.Search;
    import org.elasticsearch.index.query.QueryBuilders;
    import org.elasticsearch.search.builder.SearchSourceBuilder;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    @RequestMapping("/goods2")
    @RestController
    public class Goods2Controller {
        private static final Logger LOGGER = LoggerFactory.getLogger(Goods2Controller.class);
        @Autowired
        private JestClient jestClient;
    
        @GetMapping("/save")
        public void save() {
            Goods2Info goods2Info=new Goods2Info();
            goods2Info.setId(1001L);
            goods2Info.setName("中国人");
            goods2Info.setDescription("中国人中国人");
            Index index = new Index.Builder(goods2Info).index(Goods2Info.INDEX_NAME).type(Goods2Info.TYPE).build();
            try {
                jestClient.execute(index);
                LOGGER.info("ES 插入完成");
            } catch (IOException e) {
                e.printStackTrace();
                LOGGER.error(e.getMessage());
            }
        }
    
    
        @GetMapping("/save2")
        public void save2() {
            List<Goods2Info> entityList =new ArrayList<>();
            Goods2Info goods2Info1=new Goods2Info();
            goods2Info1.setId(1002L);
            goods2Info1.setName("中国人");
            goods2Info1.setDescription("中国人中国人");
            Goods2Info goods2Info2=new Goods2Info();
            goods2Info2.setId(1003L);
            goods2Info2.setName("美国人");
            goods2Info2.setDescription("美国人美国人");
            entityList.add(goods2Info1);
            entityList.add(goods2Info2);
            Bulk.Builder bulk = new Bulk.Builder();
            for(Goods2Info entity : entityList) {
                Index index = new Index.Builder(entity).index(Goods2Info.INDEX_NAME).type(Goods2Info.TYPE).build();
                bulk.addAction(index);
            }
            try {
                jestClient.execute(bulk.build());
                LOGGER.info("ES 插入完成");
            } catch (IOException e) {
                e.printStackTrace();
                LOGGER.error(e.getMessage());
            }
        }
    
        @GetMapping("/query")
        public List<Goods2Info> searchEntity(String searchContent){
            SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
            //searchSourceBuilder.query(QueryBuilders.queryStringQuery(searchContent));
            //searchSourceBuilder.field("name");
            searchSourceBuilder.query(QueryBuilders.matchQuery("name",searchContent));
            searchSourceBuilder.from(0).size(2);
            Search search = new Search.Builder(searchSourceBuilder.toString())
                    .addIndex(Goods2Info.INDEX_NAME).addType(Goods2Info.TYPE).build();
            try {
                JestResult result = jestClient.execute(search);
                return result.getSourceAsObjectList(Goods2Info.class);
            } catch (IOException e) {
                LOGGER.error(e.getMessage());
                e.printStackTrace();
            }
            return null;
        }
    
    }


     springboot-elasticsearch-jest.zip

  • 相关阅读:
    char类型到底是有符号还是无符号
    GNU C编译器的gnu11和c11
    kotlin之包
    mysql 各个版本驱动jar包
    网络优化
    Android 布局优化
    Android之MVVM开发模式
    Android蓝牙开发技术学习总结
    Android 电量优化
    Android中图片优化
  • 原文地址:https://www.cnblogs.com/brant/p/11712222.html
Copyright © 2020-2023  润新知