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

原文地址:https://www.cnblogs.com/brant/p/11712222.html

时间: 2024-09-30 19:43:43

springboot集成elk 四:springboot + Elasticsearch+Jest的相关文章

springboot集成elk 一: springboot + Elasticsearch

1.ELK介绍 1> Elasticsearch是实时全文搜索和分析引擎, 提供搜集.分析.存储数据三大功能: 是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统. 2> Logstash是一个用来搜集.分析.过滤日志的工具. 它支持几乎任何类型的日志,包括系统日志.错误日志和自定义应用程序日志. 它可以从许多来源接收日志,这些来源包括 syslog.消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件.websockets和Elast

springboot集成elk 三:springboot + Elasticsearch Rest-Client

注:  该集成方式,对Elasticsearch无版本限制,但是需要自行封装请求,解析结果等. <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-client</artifactId> <version>7.3.0</version> </dependency> <dependen

springboot集成elk 二:springboot + elk 采集日志

到logstash-2.0.0\bin下新建文件 logstash.conf input { tcp { mode => "server" host => "0.0.0.0" port => 4560 codec => json_lines } } output { elasticsearch { hosts => "localhost:9200" index => "springboot-logst

springboot整合logback集成elk实现日志的汇总、分析、统计和检索功能

在Spring Boot当中,默认使用logback进行log操作.logback支持将日志数据通过提供IP地址.端口号,以Socket的方式远程发送.在Spring Boot中,通常使用logback-spring.xml来进行logback配置. 首先.创建一个elk的springboot项目,然后先对logback进行配置,配置各项的详细说明可以去看http://aub.iteye.com/blog/1101222,说的很详细.也多参考一下别人关于日志的描述https://www.cnbl

springboot集成swagger2构建RESTful API文档

在开发过程中,有时候我们需要不停的测试接口,自测,或者交由测试测试接口,我们需要构建一个文档,都是单独写,太麻烦了,现在使用springboot集成swagger2来构建RESTful API文档,可以在访问接口上,直接添加注释 先介绍一下开发环境: jdk版本是1.8 springboot的版本是1.4.1 开发工具为 intellij idea 我们先引入swagger2的jar包,pom文件引入依赖如下: <dependency> <groupId>io.springfox&

SpringBoot集成Spring Security(4)——自定义表单登录

通过前面三篇文章,你应该大致了解了 Spring Security 的流程.你应该发现了,真正的 login 请求是由 Spring Security 帮我们处理的,那么我们如何实现自定义表单登录呢,比如添加一个验证码- 源码地址:https://github.com/jitwxs/blog_sample 文章目录 一.添加验证码 1.1 验证码 Servlet 1.2 修改 login.html 1.3 添加匿名访问 Url二.AJAX 验证三.过滤器验证 3.1 编写验证码过滤器 3.2 注

springboot集成springcache

今天尝试了一下springboot集成springcache做缓存,springcache是基于annotation(注释)的一个缓存技术 特点总结如下: 通过少量的配置 annotation 注释即可使得既有代码支持缓存 支持开箱即用 Out-Of-The-Box,即不用安装和部署额外第三方组件即可使用缓存 支持 Spring Express Language,能使用对象的任何属性或者方法来定义缓存的 key 和 condition 支持 AspectJ,并通过其实现任何方法的缓存支持 支持自

SpringBoot电商项目实战 — ElasticSearch接入实现

如今在一些中大型网站中,搜索引擎已是必不可少的内容了.首先我们看看搜索引擎到底是什么呢?搜索引擎,就是根据用户需求与一定算法,运用特定策略从互联网检索出制定信息反馈给用户的一门检索技术.搜索引擎依托于多种技术,如网络爬虫技术.检索排序技术.网页处理技术.大数据处理技术.自然语言处理技术等,为信息检索用户提供快速.高相关性的信息服务.搜索引擎技术的核心模块一般包括爬虫.索引.检索和排序等,同时可添加其他一系列辅助模块,以为用户创造更好的网络使用环境. image 基于Java的搜索引擎框架,目前市

SpringBoot集成Swagger,Postman,newman,jenkins自动化测试.

环境:Spring Boot,Swagger,gradle,Postman,newman,jenkins SpringBoot环境搭建. Swagger简介 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件. 一.SpringBoot集成Swagger 1.build.gradle增加swagger相关jar包,maven项目同理. 2.增加SwaggerConfig配置文件. 前两步完成,访问http://localhost:8080/demoService/swa