分布式搜索Elasticsearch
文章平均质量分 93
小钟要学习!!!
一个新手的程序员跟着黑马教程一路走的学习经验与总结分享在此(接项目)
说明:所有的博客大多来源网络教程视频学习总结得来
展开
-
ES集群部署
单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。ES集群相关概念:集群(cluster):一组拥有共同的 cluster name 的 节点。节点(node) :集群中的一个 Elasticearch 实例分片(shard):索引可以被拆分为不同的部分进行存储,称为分片。在集群环境下,一个索引的不同分片可以拆分到不同的节点中解决问题:数据量太大,单点存储量有限的问题。主分片(Primary shard):相对于副本分片的定义。副本分片(Replica sha原创 2022-06-06 08:00:00 · 2616 阅读 · 0 评论 -
Elasticsearch与MySQL数据同步
方案一:同步调用基本步骤如下:方案二:异步通知流程如下:方案三:监听binlog流程如下:方式一:同步调用方式二:异步通知方式三:监听binlog导入项目完成对酒店数据的【增删改查】实现数据同步操作hotel-admin项目作为酒店管理的微服务。当酒店数据发生增、删、改时,要求对elasticsearch中数据也要完成相同操作。步骤:创建hotel-admin项目,启动并测试酒店数据的CRUD声明exchange、queue、RoutingKey在hotel-admin中的增、删、改业务中完成消息发送在ho原创 2022-06-05 19:12:47 · 1455 阅读 · 10 评论 -
Elasticsearch自动补全(拼音查询自动补全)
要实现根据字母做补全,就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的拼音分词插件。地址:https://github.com/medcl/elasticsearch-analysis-pinyin安装方式与IK分词器一样,分三步: ①解压 ②上传到虚拟机中,elasticsearch的plugin目录 ③重启elasticsearch ④测试拼音分词结果2、自定义分词器默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做原创 2022-06-05 10:57:33 · 1065 阅读 · 2 评论 -
Elasticsearch数据聚合(查询筛选聚合酒店信息案例)
**聚合(aggregations)**可以让我们极其方便的实现对数据的统计、分析、运算。例如:实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近实时搜索效果。**桶(Bucket)**聚合:用来对文档做分组**度量(Metric)**聚合:用以计算一些值,比如:最大值、最小值、平均值等**管道(pipeline)**聚合:其它聚合的结果为基础做聚合2.2、程序运行结果默认情况下,Bucket聚合会统计Bucket内的文档数量,记为_count,并且按照_count降序排序。我原创 2022-06-05 08:50:29 · 776 阅读 · 1 评论 -
ES旅游案例(完整的关键字搜索、条件过滤、附近酒店距离、公告竞价排位案例)
下面,我们通过ES旅游的案例来实战演练下之前学习的知识。我们实现四部分功能:启动我们提供的hotel-demo项目,其默认端口是8089,访问http://localhost:8090,就能看到项目页面了:点击搜索按钮查看页面的请求数据由此可以知道,我们这个请求的信息如下:因此,我们实现业务的流程如下:实体类有两个,一个是前端的请求参数实体,一个是服务端应该返回的响应结果实体。1)请求参数前端请求的json结构如下:因此,我们在包下定义一个实体类:2)返回值分页查询,需要返回分页结果PageResult原创 2022-06-05 08:30:00 · 630 阅读 · 0 评论 -
RestClient查询文档、分页、高亮排序
编写代码之前可以将Dev Tools编写DSL语言作为参考对象,方便我们才可能之间的关系文档的查询同样适用昨天学习的 RestHighLevelClient对象,基本步骤包括:代码解读:第一步,创建对象,指定索引库名第二步,利用构建DSL,DSL中可以包含查询、分页、排序、高亮等第三步,利用client.search()发送请求,得到响应这里关键的API有两个,一个是,其中包含了查询、排序、分页、高亮等所有功能:elasticsearch返回的结果是一个JSON字符串,结构包含:因此,我们解析响应结果,就原创 2022-06-04 12:58:21 · 412 阅读 · 0 评论 -
Elasticsearch搜索结果处理
学习分页,高亮、排序原创 2022-06-04 10:23:15 · 896 阅读 · 0 评论 -
Elasticsearch实现DSL查询文档
CSDN话题挑战赛第1期活动详情地址:https://marketing.csdn.net/p/bb5081d88a77db8d6ef45bb7b6ef3d7f参赛话题:Java学习记录话题描述:可以记录一下平时学习Java中的一些知识点、心得、例题、常见的问题解决创作模板:Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括:查询所有:查询出所有数据,一般测试用。例如:match_all全文检索(full text)查原创 2022-06-04 09:29:40 · 319 阅读 · 0 评论 -
RestClient操作文档四
ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。官方文档地址:https://www.elastic.co/guide/en/elasticsearch/client/index.html其中的Java Rest Client又包括两种:克隆地址:https://github.com/ZhongChunle/hotel-demo.git数据表结构2、mapping映射分析创建索引库,最关键的是mapping映射,而mapping映射要考虑原创 2022-06-02 16:00:33 · 458 阅读 · 0 评论 -
RestClient操作索引库
ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。官方文档地址:https://www.elastic.co/guide/en/elasticsearch/client/index.html其中的Java Rest Client又包括两种:克隆地址:https://github.com/ZhongChunle/hotel-demo.git数据表结构2、mapping映射分析创建索引库,最关键的是mapping映射,而mapping映射要考虑原创 2022-06-02 13:46:04 · 440 阅读 · 0 评论 -
elasticsearch索引库操作二
mapping是对索引库中文档的约束,常见的mapping属性包括:列举json文档对应的每个字段映射(mapping):运行结果3、查询、删除索引库查询索引库修改索引库(添加数据)修改就是添加新的字段属性,如果是同名的字段就会以为是修改,那么就会报错倒排索引结构虽然不复杂,但是一旦数据结构改变(比如改变了分词器),就需要重新创建倒排索引,这简直是灾难。因此索引库一旦创建,无法修改mapping。虽然无法修改mapping中已有的字段,但是却允许添加新的字段到mapping中,因为不会对倒原创 2022-06-02 12:15:11 · 284 阅读 · 0 评论 -
初识分布式搜索elasticsearch一
elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容例如:对于搜索关键字会有高亮显示elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志数据分析、实时监控等领域:而elasticsearch是elastic stack的核心,负责存储、搜索、分析数据。elasticsearch底层是基于lucene来实现的。Lucene是一个Java语言的搜索引擎类库,是Apa原创 2022-06-02 10:49:22 · 221 阅读 · 1 评论 -
最全面的elasticsearch安装教程
因为我们还需要部署kibana容器,因此需要让es和kibana容器互联。这里先创建一个网络:1.2.加载镜像这里我们采用elasticsearch的7.12.1版本的镜像,这个镜像体积非常大,接近1G。不建议大家自己pull。课前资料提供了镜像的tar包:大家将其上传到虚拟机中,然后运行命令加载即可:同理还有的tar包也需要这样做。运行docker命令,部署单点es:命令解释:在浏览器中输入:http://宿主机IP地址:9200 即可看到elasticsearch的响应结果:kibana可以给我原创 2022-06-02 10:46:35 · 1610 阅读 · 0 评论