springboot 集成es 及es-head插件使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhangjq520/article/details/84590271

项目git地址:https://github.com/zhangjq-sss/zjq_spring-boot-cloud.git

一、配置es环境

1.选择你要下的版本,下载地址:https://www.elastic.co/downloads/past-releases

2.配置文件地址:/config/elasticsearch.yml

二、配置es-head插件环境

1.下载地址:https://github.com/mobz/elasticsearch-head

2.启动命令

cd elasticsearch-head    //进入目录

npm install

npm run start

三、整合es 与es-head插件

1.修改es配置文件elasticsearch.yml,增加如下参数:

#  集群名称
cluster.name: zjq
#  master名称
node.name: master
node.master: truenetwork.host: 127.0.0.1

http.cors.enabled: true
http.cors.allow-origin: "*"

#不加上,head插件读取不到

2.进入es/bin目录执行elasticsearch,es启动,浏览器输入地址:http://localhost:9200/

3.启动head插件,访问http://localhost:9100/

四、es-head插件使用

集群名称:zjq     索引名称(数据库):user     类型Type(表名):t_users

1.为t_users添加字段(说明:es自带id,开始没考虑到)

请求地址:user/_mapping/t_users   put

{"properties":{"id":{"type":"long"},"userName":{"type":"string"},"password":{"type":"string"},"createTime":{"type":"date","format":"yyyy-MM-dd HH:mm:ss"},"lastUpdateTime":{"type":"date","format":"yyyy-MM-dd HH:mm:ss"},"version": {"type":"integer"},"deleted":{"type":"integer"}}}

2.给t_users增加数据

请求地址:user/t_users   post

{"id":1,"userName":"金李","password":"123456","createTime":"2018-11-11 12:22:40","version":1,"lastUpdateTime":"2018-12-02 12:00:00","deleted":0}

五、springboot整合es

pom.xml

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
        </dependency>

        <!-- Spring Boot Web 依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    <dependency>

 配置文件

# elasticsearch集群名称,默认的是elasticsearch
spring.data.elasticsearch.cluster-name=zjq
 
#节点的地址 注意api模式下端口号是9300,千万不要写成9200
spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300
 
#是否开启本地存储
spring.data.elasticsearch.repositories.enable=true

实体 

package org.eureka.elasticsearch.domain;

import java.io.Serializable;

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;

import lombok.Data;

@Data
@Document(indexName="user", type = "t_users")
public class User implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Id
	private Long id;
	
	private String userName;
	
	private String password;
	
	private String createTime;
	
	private Integer version;
	
	private String lastUpdateTime;
	
	private int deleted;
	
}

dao层 

package org.eureka.elasticsearch.dao;

import org.eureka.elasticsearch.domain.User;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface UserDao extends ElasticsearchRepository<User, Long>{

	User findById(Long id);
}

service层 

package org.eureka.elasticsearch.service;

import org.eureka.elasticsearch.domain.User;

public interface UserService {

	Long save(User user);
	
	boolean delete(User user);
	
	boolean update(User user);
	
	User queryUserBYId(Long id);
}

实现类 

package org.eureka.elasticsearch.service.impl;

import org.eureka.elasticsearch.dao.UserDao;
import org.eureka.elasticsearch.domain.User;
import org.eureka.elasticsearch.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


@Service
public class UserServiceImpl implements UserService{

	@Autowired
	private UserDao userDao;
	
	@Override
	public Long save(User user) {
		if (user!=null&&user.getId()!=null) {
			return userDao.save(user).getId();
		}
		return 0l;
	}

	@Override
	public boolean delete(User user) {
		if (user!=null&&user.getId()!=null) {
			userDao.delete(user.getId());
			return true;
		}
		return false;
	}

	@Override
	public boolean update(User user) {
		if (user!=null&&user.getId()!=null) {
			userDao.save(user);
			return true;
		}
		return false;
	}

	@Override
	public User queryUserBYId(Long id) {
		return userDao.findById(id);
	}

}

控制层 

package org.eureka.elasticsearch.web;

import java.util.Date;

import org.eureka.elasticsearch.domain.User;
import org.eureka.elasticsearch.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.zjq.euraka_core.utils.DateUtil;


@RestController
@RequestMapping("/es")
public class UserController {
	
	@Autowired
	private UserService userService;
	 /**
     * 添加
     * @return
     */
    @RequestMapping("/add")
    public String add() {
        User user = new User();
        user.setId(3l);
        user.setUserName("hello");
        user.setPassword("123456");
        user.setCreateTime(DateUtil.formatDateTime(new Date()));
        user.setDeleted(0);
        user.setVersion(1);
        user.setLastUpdateTime(DateUtil.formatDateTime(new Date()));
        userService.save(user);
        return "success";
    }
 
    /**
     * 删除
     * @return
     */
    @RequestMapping("/delete")
    public String delete() {
    	User user = new User();
        user.setId(3l);
        userService.delete(user);
        return "success";
    }
 
    /**
     * 局部更新
     * @return
     */
    @RequestMapping("/update")
    public String update() {
    	User user = userService.queryUserBYId(3l);
    	user.setUserName("word");
    	userService.update(user);
        return "success";
    }
    /**
     * 查询
     * @return
     */
    @RequestMapping("/query")
    public String query(Long id) {
    	User user = userService.queryUserBYId(id);
    	if (user==null) {
			return "该id不存在!";
		}
    	String usernfo = user.toString();
        return usernfo;
    }
}

启动类 

package org.eureka.elasticsearch;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;

@SpringBootApplication
@EnableElasticsearchRepositories
public class EsApp {

    public static void main(String[] args) {
        SpringApplication.run(EsApp.class,args);
    }
}

测试结果页面

查询

猜你喜欢

转载自blog.csdn.net/zhangjq520/article/details/84590271