elasticsearch整合springboot
elasticsearch7.6、 springboot 2.3.2
pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
</parent>
<groupId>com.alonginfo</groupId>
<artifactId>EsSearch</artifactId>
<version>1.0-SNAPSHOT</version>
<description>springboot project template</description>
<properties>
<java.version>1.8</java.version>
<mybatis-plus-boot-starter.version>3.1.1</mybatis-plus-boot-starter.version>
<spring.data.elasticsearch.version>4.0.5.RELEASE</spring.data.elasticsearch.version>
<elasticsearch.version>7.6.2</elasticsearch.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.20</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus-boot-starter.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.7.0.0</version>
</dependency>
<dependency>
<groupId>cn.easyproject</groupId>
<artifactId>orai18n</artifactId>
<version>12.1.0.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.3</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.plugin</groupId>
<artifactId>transport-netty4-client</artifactId>
<version>${elasticsearch.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>${spring.data.elasticsearch.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>2.0-alpha-4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
yml文件
server:
port: 8900
spring:
elasticsearch:
rest:
uris: 172.16.2.4:6200
启动类
@SpringBootApplication
public class EsSearchApplication {
public static void main(String[] args) {
SpringApplication.run(EsSearchApplication.class, args);
}
}
连接elasticsearch搜索
YhxxRepository
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
public interface YhxxRepository extends ElasticsearchRepository<Yhxx, String> {
}
javabean
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
/**
* @author
* @version 1.0
* @date 2020/12/3 8:24
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Document(indexName = "myqxin")
public class Yhxx {
@Id
private String id;
@Field(type = FieldType.Text)
private String gsbh;
@Field(type = FieldType.Text)
private String fgsbh;
@Field(type = FieldType.Text)
private String yyzbh;
@Field(type = FieldType.Keyword)
private String yhdabh;
@Field(type = FieldType.Text ,analyzer = "ik_max_word")
private String yhmc;
@Field(type = FieldType.Text)
private String yhh;
@Field(type = FieldType.Text)
private String yhlx;
}
操作elasticsearch ElasticsearchService
package com.alonginfo.essearch.yx.es.service;
import com.alonginfo.essearch.yx.es.model.Yhxx;
import com.alonginfo.essearch.yx.es.model.YhxxRepository;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @author
* @version 1.0
* @date 2020/12/2 15:53
*/
@Service
public class ElasticsearchService {
@Resource
private YhxxRepository yhxxRepository;
public void saveAll() {
Page page = new Page(1, 50);
// 添加数据 从数据库查询数据
List<Yhxx> list = new ArrayList<Yhxx>;
yhxxRepository.saveAll(list);
}
public void selectByid(){
//创建构建器
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
// boolQueryBuilder.must(QueryBuilders.termQuery("yhdabh","010105002534"));
// boolQueryBuilder.must(QueryBuilders.termQuery("yhmc","法外狂徒张三"));
boolQueryBuilder.must(QueryBuilders.matchQuery("yhmc","法外狂徒李四"));
NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder();
queryBuilder.withQuery( boolQueryBuilder );
org.springframework.data.domain.Page<Yhxx> page = yhxxRepository.search(queryBuilder.build());
List<Yhxx> list = page.getContent();
System.out.println(list);
}
}