这是一篇全文搜索教程(微服务框架SpringBoot整合ElasticSearch实现全文搜索)
ElasticSearch
- ElasticSearch是开源的全文搜索引擎,可以快速的存储,搜索,分析海量数据.SpringBoot通过整合Spring Data ElasticSearch提供检索功能支持
- ElasticSearch是分布式搜索服务,提供RESTful API,底层基于Lucene,采用多shard(分片) 的方式保证数据安全,并且提供 自动resharding的功能
ElasticSearch使用 - 参照ElasticSearch使用文档
- 示例
对于员工目录,我们将做如下操作: 1.每个员工索引一个文档,文档包含该员工的所有信息。 2.每个文档都将是 employee 类型 。 3.该类型位于 索引 megacorp 内。 4.该索引保存在我们的 Elasticsearch 集群中。
PUT /megacorp/employee/1 { "first_name" : "John", "last_name" :"Smith", "age" :25, "about" :"I love to go rock climbing", "interests": [ "sports", "music" ] }
- 路径 /megacorp/employee/1 包含了三部分的信息:
- megacorp:索引名称
- employee:类型名称
- 1:特定雇员的ID
整合ElasticSearch
- 引入spring-boot-starter-data-elasticsearch
org.springframework.boot spring-boot-starter-data-elasticsearch
- 安装Spring Data对应版本的ElasticSearch
- application.yml配置
- SpringBoot自动配置的ElasticsearchRepository,ElasticsearchTemplate,Client
- SpringBoot默认支持两种技术和ElasticSearch进行交互:
- Jest:
- 默认不生效
- 使用时需要导入Jest工具包:import io.searchbox.client.JestClient;
1.给Elasticsearch索引一个文档 2.构建索引功能 index.Builder(article).index("indexName").type("news").build(); 3.搜索 search.Builder(json).addIndex("indexName").addType("news").build(); .执行 jetClient.excute()
- SpringData ElasticSearch:SpringData ElasticSearch使用
- Client: 需要配置节点信息:clusterNodes,clusterName
- ElasticsearchTemplate: 操作Elasticsearch
- 【这是一篇全文搜索教程(微服务框架SpringBoot整合ElasticSearch实现全文搜索)】编写ElasticsearchRepository的接口继承操作方法操作Elasticsearch
1.在application.properties中配置clusterNodes,clusterName(版本适配) spring.data.elasticsearch.cluster-nodes=localhost:9300 spring.data.elasticsearch.cluster-name=elasticsearch2.两种用法:ElasticsearchTemplate,ElasticsearchRepository 2.12.2 ElasticsearchRepository 实体类注解@Document(indexName="indexName",type="book") 构建索引:bookRespository.index(book); ElasticsearchRepository方法:S save(S var1); Iterable saveAll(Iterable var1); Optional
findById(ID var1); boolean existsById(ID var1); Iterable findAll(); Iterable findAllById(Iterable var1); long count(); void deleteById(ID var1); void delete(T var1); void deleteAll(Iterable extends T> var1); void deleteAll(); 查询表达式注解@Query()
- Jest:
推荐阅读
- 尖子生的启示(3)
- 2018,不同寻常
- 由伐木工引发的陈述
- 蝴蝶花
- 随笔一篇
- 《声之形》
- 2018-11-27今天属于宇宙,这是我送给他的礼物|2018-11-27今天属于宇宙,这是我送给他的礼物|我的奇迹日记Day27
- 我为什么写不出一篇读书分享稿()
- 2018-06-29|2018-06-29 这是我的第一篇文章 markdown
- 《如何写出一篇好文章》之赠送礼物的训练