SpringBoot 2.2.0 SpringData ElasticSearch使用示例(二)

新建一个文章类

@Data
@NoArgsConstructor
@Document(indexName = "article", type = "article")
public class Article implements Serializable {
    private static final long serialVersionUID = -1656772748378393449L;

    @Id
    @Field(type = FieldType.Integer)
    private Integer id;
    @Field(type = FieldType.Text, searchAnalyzer = "ik_smart", analyzer = "ik_smart", store = true)
    private String title;
    @Field(type = FieldType.Text, searchAnalyzer = "ik_smart", analyzer = "ik_smart")
    private String name;
    @Field(type = FieldType.Date, format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createDateTime;
}

创建 Repository 接口

public interface ArticleRepository extends ElasticsearchRepository<Article,Integer> {
}

application


spring.data.elasticsearch.repositories.enabled=true
spring.elasticsearch.jest.read-timeout=3s
spring.elasticsearch.rest.uris=http://192.168.1.100:9200
spring.elasticsearch.jest.connection-timeout=5s
spring.elasticsearch.jest.multi-threaded=true

测试使用

@SpringBootTest
class EsDemoApplicationTests {
    @Autowired
    ArticleRepository articleRepository;


    //保存
    @Test
    void saveTest() {
        Article article = new Article();
        article.setId(1);
        article.setTitle("Elasticsearch入门");
        article.setName("felix");
        article.setCreateDateTime(new Date());
        Article save = articleRepository.save(article);
        System.out.println(save);
    }

    @Test
    public void updateTest()  {

            //更新操作
            Article article = new Article();
            //如果id不存在则新增,存在则执行更新操作
            article.setId(1);
            article.setTitle("Elasticsearch入门(二)");
            article.setName("felix");
            article.setCreateDateTime(new Date());
            articleRepository.save(article);
    }

    @Test
    public void deleteTest() {
        //根据实体删除
        Article article = new Article();
        article.setId(1);
        articleRepository.delete(article);
        //根据id删除
        articleRepository.deleteById(0);
        //删除全部
        articleRepository.deleteAll();
        List<Article> articles = new ArrayList<>();
        articles.add(article);
        articleRepository.deleteAll(articles);

    }

    @Test
    public void findTest() {
        //统计
        long count = articleRepository.count();
        System.out.println(count);
        //查询所有
        Iterable<Article> articles = articleRepository.findAll();
        for (Article article : articles) {
            System.out.println(article);
        }

        //根据id查询
        Optional<Article> byId = articleRepository.findById(2);

        System.out.println("byID" + byId);

    }

    @Test
    public void sortTest() {
        //查询并排序
        Sort sort = Sort.by(Sort.Order.asc("id"));
        Iterable<Article> articles = articleRepository.findAll(sort);

        for (Article article : articles) {
            System.out.println(article);
        }
    }


    @Test
    public void pageTest() {
        //分页查询
        Pageable pageable = PageRequest.of(0, 5);
        Page<Article> articles = articleRepository.findAll(pageable);
        System.out.println(articles.getContent());
    }
    @Test
    public void pageAndSortTest(){
        //查询分页并且排序
        Sort sort=Sort.by(Order.desc("id"));
        Pageable pageable=PageRequest.of(0,5,sort);
        Page<Article> articles = articleRepository.findAll(pageable);
        List<Article> list = articles.getContent();
        for (Article article : list) {
            System.out.println(article);
        }

    }
}

Spring Data ElasticSearch 与 ElasticSearch 有对应关系

https://github.com/spring-projects/spring-data-elasticsearch
https://docs.spring.io/spring-data/elasticsearch/docs/3.2.0.RC3/reference/html/#preface.versions
在这里插入图片描述
elasticsearch 版本为6.8.4
spring data elasticsearch 3.2.1
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值