文章分类 - ElasticSearch
摘要:一、elasticsearch集群结构介绍 单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点,每个节点存放在一个服务器上 单点故障问题:将分片数据在不同节点备份(replic
阅读全文
摘要:一、数据同步思路分析 1.1.数据同步问题分析 elasticsearch中的酒店数据来自于mysql数据库,因此mysql数据发生改变时,elasticsearch也必须跟着改变,这个就是elastic search与mysql之间的数据同步。 问题:在微服务中,负责酒店管理(操作mysql)的业
阅读全文
摘要:一、自动补全需求说明 当用户在搜索框输入字符时,就应该提示出与该字符有关的搜索项,如图: 二、安装拼音分词器 要实现根据字母做补全,就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的拼音分词插件。下载地址:https://github.com/medcl/elasticse
阅读全文
摘要:在MysQL也有聚合功能:聚合函数:avg、max、min等等,聚合函数需要结合group by分组去使用,ES具备MySQL类似的聚合功能,并且还做了更丰富的聚合功能。 聚合可以先学习下面常见的,详细可以查看官网:https://www.elastic.co/guide/en/elasticsea
阅读全文
摘要:通过优步旅游项目中搜索查询项目,进行elasticsearch项目实战,完成酒店搜索和分页、酒店结果过滤、周边的酒店和酒店竞价排名 一、酒店搜索和分页 案例1:实现优步旅游的酒店搜索功能,完成关键字搜索和分页: 启动项目,访问搜索功能,对应的post类型的接口并没有实现,所以实现该接口即可: 1.1
阅读全文
摘要:前面我们已经实现利用DSL实现文档查询和后续结果处理,下面我们利用Java RestClient实现前面的功能 一、快速入门 1.1.基本案例演示 我们通过match_all来演示下基本的APl,先看请求DSL的组织:查询所有的信息如下: @SpringBootTest public class H
阅读全文
摘要:一、排序 elasticsearch支持对搜索结果排序,默认是根据相关度算分(_score)来排序。可以排序字段类型有:keyword类型、数值类型、地理坐标类型、日期类型等。 1.1.语法说明: 对结果的排序语法如下: GET /indexname/_search { "query": { "ma
阅读全文
摘要:利用RestClient往ES中导入了很多数据,数据的存储不是目的,最终是从海量的数据中,检索出你所需要的哪些,这就用到了ES的搜索功能了 一、DSL查询分类 1.1.常见的查询类型 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。
阅读全文
摘要:一、什么是RestClient? 前面我们学习了通过DSL语句操作ES索引库,文档数据,要想通过java代码操作,必须使用ES官方提供的RestClient实现了,ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。 官方文档地址:htt
阅读全文
摘要:一、索引库 索引库就相当于表,索引库里面有文档,相当于数据库里面的一行一行的数据,数据库先创建表才能添加数据,ES里面也一样,先有索引库,才能往里面添加文档。创建一个个索引库,就想建表一样,如果想创建一个索引库,需要指定mapping映射,mapping是对文档的约束 分词器分词是在:第一个给文档创
阅读全文
摘要:一、Elasticsearch安装说明 Elasticsearch是一个Java项目,从Elasticsearch7.0以上的版本已经内置jdk,不同的版本所需要的jdk版本是不同的(建议使用自己的Java版本,推荐Java长期版本),同时不同的系统版本所需要的ES版本也是不同的, 注意:ES自带o
阅读全文
摘要:一、Elasticsearch是什么? Elasticsearch 是一个非常强大的搜索引擎。它目前被广泛地使用于各个 IT 公司。Elasticsearch 是由 Elastic 公司创建。它的代码位于 GitHub - elastic/elasticsearch: Free and Open,
阅读全文