文档章节

springboot整合Elasticsearch

暗中观察
 暗中观察
发布于 2018/05/20 10:44
字数 488
阅读 182
收藏 0

1,准备

①,docker启动Elasticsearch

#下载镜像
docker pull registry.docker-cn.com/library/elasticsearch

#运行镜像
#注意:elasticsearch 默认占用2g内存,所以这里要指定
#-d 后台运行,-p 暴露的端口 ,--name 指定容器名,最后带上镜像id即可
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name es 671bb2d7da44

#将容器的文件映射到宿主机上
docker cp ten_es:/usr/share/elasticsearch/config/elasticsearch.yml /usr/share/elasticsearch.yml


安装es
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ten_es 5acf0e8da90b

进入容器 
docker exec -it ten_es /bin/bash

停止容器
docker stop ten_es

删除容器
docker rm ten_es

开发容器的es,让外部访问

vim /etc/security/limits.conf 
elsearch hard nofile 65536
elsearch soft nofile 65536

vim /etc/sysctl.conf 
vm.max_map_count=655360

②,检查elasticsearch 是否启动成功

看到如下界面,说明启动成功

③,pom依赖

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.0.2.RELEASE</version>
</parent>

<dependencies>
	<!-- 这里使用 jest 操作elasticsearch ,非常方便-->
	<dependency>
		<groupId>io.searchbox</groupId>
		<artifactId>jest</artifactId>
		<version>5.3.3</version>
	</dependency>

	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-web</artifactId>
	</dependency>
</dependencies>

 

④,application.properties 配置

server.port=8082

spring.elasticsearch.jest.uris=http://192.168.43.28:9200

spring.elasticsearch.jest.username=guest
spring.elasticsearch.jest.password=guest

2,查看JestAutoConfiguration

它为我们注入了JestClient ,而我们对elasticsearch的操作是通过它来完成的


	@Bean(destroyMethod = "shutdownClient")
	@ConditionalOnMissingBean
	public JestClient jestClient() {
		JestClientFactory factory = new JestClientFactory();
		factory.setHttpClientConfig(createHttpClientConfig());
		return factory.getObject();
	}

3,bean

import io.searchbox.annotations.JestId;

public class Ariticle {

	@JestId
	private Integer id;
	private String title;
	private String author;
	private String content;
	
}

4,创建索引及文件

import com.es.elasticsearch.bean.Ariticle;
import io.searchbox.client.JestClient;
import io.searchbox.core.Index;
import io.searchbox.core.Search;
import io.searchbox.core.SearchResult;
@RestController
public class BookController {


    @Autowired
    private JestClient jestClient;


    @RequestMapping("ariticle")
    public String create() {
        Ariticle ariticle=new Ariticle();
        ariticle.setId(1);
        ariticle.setTitle("暴击");
        ariticle.setAuthor("xiao su");
        ariticle.setContent("三狗行,必有单身");

        Index index = new Index.Builder(ariticle).index("qiyouji").type("news").build();//构建一个索引功能
        try {
            jestClient.execute(index);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "创建成功";
    }
}

①,浏览器访问ariticle 方法

5,测试

说明整合成功,更多Elasticsearch的用法,请参考Elasticsearch 官网

https://www.elastic.co/guide/cn/elasticsearch/guide/current/_indexing_employee_documents.html

 

© 著作权归作者所有

暗中观察

暗中观察

粉丝 8
博文 138
码字总数 48746
作品 0
惠州
私信 提问
【ElasticSearch】---SpringBoot整合ElasticSearch

SpringBoot整合ElasticSearch 一、基于spring-boot-starter-data-elasticsearch整合 开发环境:springboot版本:2.0.1,elasticSearch-5.6.8.jar版本:5.6.8,服务器部署ElasticSearch版本:......

雨点的名字
2018/08/23
0
0
spring-data-elasticsearch 基本案例详解(三)

『 风云说:能分享自己职位的知识的领导是个好领导。 』 运行环境:JDK 7 或 8,Maven 3.0+ 技术栈:SpringBoot 1.5+, Spring Data Elasticsearch 1.5+ ,ElasticSearch 2.3.2 本文提纲 一、...

夜黑人模糊灬
2018/05/13
990
1
elasticsearch入门 springboot2集成elasticsearch 实现全文搜索,图文讲解带源码

springboot整合elasticsearch常用的方式有以下三种 1,Java API 这种方式基于TCP和ES通信,官方已经明确表示在ES 7.0版本中将弃用TransportClient客户端,且在8.0版本中完全移除它,所以不提倡...

码农小石头
03/24
0
0
Docker下ELK三部曲之二:细说开发

本章是《Docker下ELK三部曲》的第二篇,之前的《Docker下ELK三部曲之一:极速体验》部署了ELK,还有一个web应用可以将日志上报到ELK,然后在Kibana提供的页面查询到了日志,今天我们一起深入...

boling_cavalry
2018/04/21
0
0
SpringBoot整合Elastic-Job,实现动态创建定时任务,任务持久化

SpringBoot使用Elastic-Job-lite,实现动态创建定时任务,任务持久化 Elastic-Job是当当开源的一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。 ...

oppo5630
2018/04/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js如何控制table中的某一行动态置顶

两行代码搞定: $('#'+item.roadCode).fadeOut().fadeIn();//获取到需要置顶的行 $(".table").prepend($('#'+item.roadCode)); 其中,fadeOut()方法 作用 --- 从可见到隐藏 如下: prepend(......

码妞
今天
4
0
四种解决Nginx出现403 forbidden 报错的方法

我是在在本地用虚拟机中通过yum安装nginx的,安装一切正常,但是访问时报403, 于是查看nginx日志,路径为/var/log/nginx/error.log。打开日志发现报错Permission denied,详细报错如下: 1....

dragon_tech
今天
3
0
获取RestResultResponse返回的值

Springboot项目,需要调其他服务的接口,返回值类型是RestResultResponse 打断点的结果集是这个 打印出来的getData(): [{id=3336b624-8474-4dd9-bd5b-c7358687c877, paraNo=104, para=Postpo...

栾小糖
今天
4
0
【小学】 生成10以内的加减法

#!/usr/bin/env python# coding: utf-8from random import randrange# 题目的最大数值R_MAX = 10# 生成的题目的数量R_PAGE = 70# 生成减法列表def get_sub_list():...

Tensor丨思悟
今天
11
0
JavaScript设计模式——适配器模式

  适配器模式是设计模式行为型模式中的一种模式;   定义:   适配器用来解决两个已有接口之间不匹配的问题,它并不需要考虑接口是如何实现,也不用考虑将来该如何修改;适配器不需要修...

有梦想的咸鱼前端
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部