欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于ElasticSearch整合SpringBoot

程序员文章站 2024-03-05 16:57:25
...

首先导入需要的依赖:这里要注意导入的Jest版本号和你的elasticsearch版本号在同一大版本,我的ES是6.5.4,所以这里我用的6版本的jest

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 镜像ID
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
     <groupId>io.searchbox</groupId>
     <artifactId>jest</artifactId>
     <version>6.3.1</version>
</dependency>

安装ES的时候,注意内存不足的问题,之前在云主机上安装,多次因为内存分配问题,一直给我报错,气煞我也。
不熟悉ES语法的可以参照这里中文文档操作

写一个测试用例:
添加


@Autowired
   private JestClient jestClient;
 @Test
    public void Insert() {

        Article article = new Article();
        article.setId(1);
        article.setAuthor("老舍");
        article.setTitle("家,春,秋");
        article.setContent("hello elasticsearch");
        Index index = new Index.Builder(article).index("mix").type("book").build();
        try {
            jestClient.execute(index);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
public class Article {

    @JestId
    private Integer id;
    private String author;
    private String title;
    private String content;
    //省略get set方法
}

访问:http://38.108.101.225:9200/mix/book/1 就会看到json字符串

如果是查找:

 @Test
    public void search(){

        String json = "";
        Search build = new Search.Builder(json).addIndex("mix").addType("book").build();
        try {
            SearchResult execute = jestClient.execute(build);
            System.out.println(execute.getJsonString());

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