各种过时,版本不兼容,只能暂时将代码放在这先做参考了。
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
Book.java
package com.gong.spingbootes.bean;
import org.springframework.data.elasticsearch.annotations.Document;
//这里必须指明索引名字和类型
@Document(indexName = "gong",type = "book")
public class Book {
private Integer id;
private String bookName;
private String author;
public Book(){}
public Book(Integer id, String bookName, String author) {
this.id = id;
this.bookName = bookName;
this.author = author;
}
@Override
public String toString() {
return "Book{" +
"id=" + id +
", bookName='" + bookName + '\'' +
", author='" + author + '\'' +
'}';
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
BookRepository.java
package com.gong.spingbootes.repository;
import com.gong.spingbootes.bean.Book;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import java.util.List;
//第一个泛型是对象类型,第二个泛型是book的主键
public interface BookRepository extends ElasticsearchRepository<Book,Integer>{
//这里的名字不是随意取的,而是根据查询需求来取的,具体可参考相关文档
public List<Book> findByBookNameLike(String bookName);
}
application.properties
spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=192.168.124.22
#这两玩意过时了
SpringbootEsApplicationTests.java
package com.gong.spingbootes;
import com.gong.spingbootes.bean.Article;
import com.gong.spingbootes.bean.Book;
import com.gong.spingbootes.repository.BookRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpingbootEsApplicationTests {
@Autowired
BookRepository bookRepository;
@Test
public void contextLoads() {
}
//添加索引
@Test
public void index() {
bookRepository.index(new Book(1,"java","德玛"));
}
//进行查询
@Test
public void search() {
bookRepository.findByBookNameLike("ja");
}
}