springboot整合ElasticSearch 使用elasticsearchTemplate和elasticsearchRepository两种方式

博客介绍了Spring Boot整合ES的依赖使用方法。一是使用elasticsearchRepository,以操作repository方式操作ES,创建实体类、dao层,继承相关接口即可,不了解ES的开发者也能简单使用;二是使用elasticsearchTemplate,可直接注入,还提及想详细了解client使用可查看其常用操作API。

springboot整合ES的依赖

       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
        </dependency>
spring.data.elasticsearch.cluster-name=my-application
spring.data.elasticsearch.cluster-nodes=localhost:9300
spring.data.elasticsearch.repositories.enabled=true

1.使用elasticsearchRepository

这种方式简单方便,以操作repository的方式操作ES 不了解ES的开发者也可以简单使用

创建实体类,

指定index(数据库)  type(数据库中的表) 分片和副本不是必须的

@Document(indexName = "book",type = "book", shards = 1,replicas = 0, refreshInterval = "-1")
public class Book {
    //注意 实现的实体类必须指定id属性 不然会报异常
    private Integer id;
    private String bookName;
    private String author;
    private String publish;
    private Integer price;

    
    //  setXXX()和getXXX()

    @Override
    public String toString() {
        return "Book{" +
                "id=" + id +
                ", bookName='" + bookName + '\'' +
                ", author='" + author + '\'' +
                ", publish='" + publish + '\'' +
                ", price=" + price +
                '}';
    }

}

创建dao层

只需要继承ElasticSearchRepository<Book,String>的接口  不需要自己去实现接口

接口上 可以不使用任何注解(如:@Repository)

public interface BookRepository extends ElasticsearchRepository<Book, String> {
    List<Book> findByPrice(Integer price);
}

测试类。。。 

@RunWith(SpringRunner.class)
@SpringBootTest
public class ElasticsearchApplicationTests {

    @Autowired
    BookRepository bookRepository;

    @Test
    public  void  test1(){
        Book book=new Book();
        book.setAuthor("张三");
        book.setBookName("javv从入门到放弃");
        book.setPrice(24);
        book.setPublish("出版社");
        bookRepository.save(book);
        Iterable<Book> all = bookRepository.findAll();
        Iterator<Book> iterator = all.iterator();
        while(iterator.hasNext()) {
            Book next = iterator.next();
            System.out.println(next);
        }
    }
}

2.使用elasticsearchTemplate

直接注入elasticsearchTemplate

  @Autowired
    ElasticsearchTemplate elasticsearchTemplate;
   @Test
   public void test2(){
       Client client = elasticsearchTemplate.getClient();
       GetResponse response = client.prepareGet("index", "type", "id").get();
       System.out.println(response.getSource());
   }

以上只是简单的使用  elasticsearchTemplate方式的  如果想详细了解client的使用 -->  client的常用操作API

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值