springboot整合搜索框架ElasticSearch实例(整理二)

1、Spring Data Elasticsearch官方文档地址

https://docs.spring.io/spring-data/elasticsearch/docs/3.0.6.RELEASE/reference/html

SpringBoot整合elasticsearch版本说明:
https://github.com/spring-projects/spring-data-elasticsearch/wiki/Spring-Data-Elasticsearch—Spring-Boot—version-matrix
在这里插入图片描述

2、添加maven依赖,修改配置文件
	<dependency>  
         <groupId>org.springframework.boot</groupId>  
         <artifactId>spring-boot-starter-data-elasticsearch</artifactId>  
     </dependency>  
# Elasticsearch cluster name.   es集群的名称
spring.data.elasticsearch.cluster-name=elasticsearch
# Comma-separated list of cluster node addresses.节点树 服务端的ip+端口号 。好多个节点localhost:9300,192.168.1.188:9300
spring.data.elasticsearch.cluster-nodes=192.168.1.188:9300
# Whether to enable Elasticsearch repositories.数据仓库是否开启,true开启
spring.data.elasticsearch.repositories.enabled=true
3、springboot整合搜索框架ElasticSearch实例

注意点:
索引名称记得小写,类属性名称也要小写
新建实体对象article
加上类注解 @Document(indexName = “blog”, type = “article”)

import org.springframework.data.elasticsearch.annotations.Document;
/**
 * 功能描述:文章对象
 * @Document表明是一个记录,对应数据库的每一条记录。
 * indexName 指的是将记录存到哪个索引库中,这里是 blog(即哪个数据库)
 * type 指的是将记录存到索引库哪个type中,这里是 article (即哪个表)
 */
@Document(indexName = "blog", type = "article")
public class Article implements Serializable {

    private static final long serialVersionUID = 1L;

    private long id;

    private String title;

    private String summary;

    private String content;

    private int pv;
}

接口继承ElasticSearchRepository,里面有很多默认实现

import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
//@Repository//(这个注解也可以,其注解包含@Component注解,表明它是一个数据仓库)
//@Document(indexName = "blog", type = "article", shards = 1, replicas = 0, refreshInterval = "-1")
@Component
public interface ArticleRepository extends ElasticsearchRepository<Article, Long> {

}

在这里插入图片描述

import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;

@RestController
@RequestMapping("/api/elasticsearch")
public class TestElasticsearchController {

    @Autowired
    private ArticleRepository articleRepository;

    @PostMapping("save")
    public Object save(long id,String title){

        Article article = new Article();
        article.setId(id);
        article.setPv(123);
        article.setContent("springboot整合elasticsearch");
        article.setTitle(title);
        article.setSummary("搜索框架整合");

        articleRepository.save(article);

        return JsonData.buildSuccess();
    }

    @GetMapping("search")
    public Object search(String title){

        //QueryBuilder queryBuilder = QueryBuilders.matchAllQuery(); //搜索全部文档
        QueryBuilder queryBuilder = QueryBuilders.matchQuery("title", title);

        Iterable<Article> list =  articleRepository.search(queryBuilder);

        return JsonData.buildSuccess(list);
    }
}

QueryBuilder使用
API官方文档 https://www.elastic.co/guide/en/elasticsearch/client/java-api/1.3/query-dsl-queries.html

查看es数据
查看索引信息:http://localhost:9200/_cat/indices?v
查看某个索引库结构:http://localhost:9200/blog
查看某个对象:http://localhost:9200/blog/article/1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、Spring Date简介

Spring Date可以理解为它可以为所有数据框架整合的中间件,例如redis,mongdb,以及马上要说的ElasticSearch
官网:https://spring.io/projects/spring-data
在这里插入图片描述

5、ElasticSearch5.6.8常用API

官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值