Springboot統合Elasticsearch簡単チュートリアル
14002 ワード
一、前言
JAvaオペレーションelasticsearchは、データレスノードとして他のノードとの通信であり、ポートが9300.elasticsearchとjdkバージョンは適切でなければならない.elasticsearchはjavaで記述されているため、バージョンのアップに伴い、最新版のjdkも使用されるため、低バージョンのjdkは最新のelasticsearchバージョンと一致しない.ただし、高バージョンのjdkは、jdkがアップグレード中に自身も下に互換性があるため、低バージョンのelasticsearchと下に互換性があります.この点は重要です.そうしないと、プロジェクトは起きられません.jdk 1.8、elasticsearch-2.4.2を使っています.では、統合を始めましょう.
二、注入elasticsearch依存
三、アプリケーション.propertiesにElasticsearch構成を追加する
四、実体クラス(注意!idはStringタイプ)
五、Daoを書く
六、テストコード
オリジナルではありません.投稿:https://blog.csdn.net/zhaoyahui_666/article/details/78688688
JAvaオペレーションelasticsearchは、データレスノードとして他のノードとの通信であり、ポートが9300.elasticsearchとjdkバージョンは適切でなければならない.elasticsearchはjavaで記述されているため、バージョンのアップに伴い、最新版のjdkも使用されるため、低バージョンのjdkは最新のelasticsearchバージョンと一致しない.ただし、高バージョンのjdkは、jdkがアップグレード中に自身も下に互換性があるため、低バージョンのelasticsearchと下に互換性があります.この点は重要です.そうしないと、プロジェクトは起きられません.jdk 1.8、elasticsearch-2.4.2を使っています.では、統合を始めましょう.
二、注入elasticsearch依存
<dependency>
<groupId>org.elasticsearchgroupId>
<artifactId>elasticsearchartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-elasticsearchartifactId>
dependency>
<dependency>
<groupId>org.springframework.datagroupId>
<artifactId>spring-data-elasticsearchartifactId>
dependency>
<dependency>
<groupId>com.fasterxml.jackson.coregroupId>
<artifactId>jackson-databindartifactId>
dependency>
<dependency>
<groupId>net.java.dev.jnagroupId>
<artifactId>jnaartifactId>
dependency>
三、アプリケーション.propertiesにElasticsearch構成を追加する
# elasticsearch
spring.data.elasticsearch.cluster-name=elasticsearch # , elasticsearch
spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300 # ,
#spring.data.elasticsearch.local=false
spring.data.elasticsearch.repositories.enable=true
四、実体クラス(注意!idはStringタイプ)
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
//indexName : ( mysql )
//type: ( mysql )
@Document(indexName = "megacorp",type = "employee", shards = 1,replicas = 0, refreshInterval = "-1")
public class Employee {
@Id
private String id;
@Field
private String firstName;
@Field
private String lastName;
@Field
private Integer age = 0;
@Field
private String about;
public String getId() {
return id;
}
public void setId(final String id) {
this.id = id;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(final String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(final String lastName) {
this.lastName = lastName;
}
public Integer getAge() {
return age;
}
public void setAge(final Integer age) {
this.age = age;
}
public String getAbout() {
return about;
}
public void setAbout(final String about) {
this.about = about;
}
}
五、Daoを書く
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Component;
import com.example.demo.elasticsearch.entity.Employee;
@Component
public interface EmployeeRepository extends ElasticsearchRepository<Employee,String>{
Employee queryEmployeeById(String id);
}
六、テストコード
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.elasticsearch.dao.EmployeeRepository;
import com.example.demo.elasticsearch.entity.Employee;
import com.google.gson.Gson;
@RestController
@RequestMapping("/es")
public class ElasticSearchController {
@Autowired
private EmployeeRepository er;
//
@RequestMapping("/add")
public String add(){
Employee employee=new Employee();
employee.setId("1");
employee.setFirstName("xuxu");
employee.setLastName("zh");
employee.setAge(26);
employee.setAbout("i am in peking");
er.save(employee);
System.err.println("add a obj");
return "success";
}
//
@RequestMapping("/delete")
public String delete(){
er.delete("1");
return "success";
}
//
@RequestMapping("/update")
public String update(){
Employee employee=er.queryEmployeeById("1");
employee.setFirstName(" ");
er.save(employee);
System.err.println("update a obj");
return "success";
}
//
@RequestMapping("/query")
public Employee query(){
Employee accountInfo=er.queryEmployeeById("1");
System.err.println(new Gson().toJson(accountInfo));
return accountInfo;
}
}
オリジナルではありません.投稿:https://blog.csdn.net/zhaoyahui_666/article/details/78688688