ElasticSearch(es)入门学习

好记星不如烂笔头,这里记录平时工作中用到的东西,不喜可以留言。

ElasticSearch为啥要用

ElasticSearch简称es是一个ElasticSearch是一个分布式,高性能、高可用、可伸缩的搜索和分析系统 。可以当做一个上层数据库来使用和关系数据库和Nosql有一定区别和相似性。使用es的几个原因:

  1. 关系型数据库模糊搜索不足索引,会全表扫描非常慢。%关键词%这种搜索会非常慢。主:关系型数据库支持的是%关键词,搜索非常快。
  2. 关系型数据库不支持全文搜索分词,比进入我想搜索电影*碟中谍-全面瓦解的时候,不小心打成了全瓦解**,es就可以根据分词搜索出来这个电影。在比如:搜索 上海千穆计算机xxx, 打成了 千穆 上海,es也能搜索出来的。
  3. 数据分析、日志分析
  4. mongo不支持restful api, 底层使用BSON放数据,es使用json

引用1:大白话ElasticSearch是什么以及应用场景
引用2:Springboot + ElasticSearch 构建博客检索系统 [慕课网]
引用3:ElasticSearch入门 [慕课网 瓦力]

1 Es简单介绍

  • java开发,生产使用es6,jdk8+, 提供统一的restful接口访问能力
  • elasticSearch配套工具,kibana(web界面操作es)、logstash同步中间件 mysql和es数据、elasticsearch head插件 类似kibaba 非官网插件。
  • 关系型数据库和es对比
    Elasticsearch vs MySQL
    Mysql: Select * from user.user_info where name = ‘张三’;
    ES: Get /user/user_info/_search?q=name:张三

2 ES数据同步中间件

  • 数据同步分为两种,全量和后期增量(新增、修改)
  • 同步有:代码层在修改mysql的时候,同步更新es(缺点耦合,模块多很难维护);数据库层利用mysql binlog订阅,把es当做一个客户端; 使用 logstash配置mysql和es数据源并制定表格进行复制,支持多表。
  • logstash-input-jdbc同时同步多个表 https://www.cnblogs.com/xuwenjin/p/8989043.html

3 springboot集成Es

  • springboot增加es starter, 增加es 地址和端口9200

4 es分词插件

  • es默认分词对中文支持非常差,我们一般会安装第三方中文分词插件,比如“我是中国人”,看分词插件如何分词
发布了112 篇原创文章 · 获赞 85 · 访问量 33万+

猜你喜欢

转载自blog.csdn.net/ab601026460/article/details/103849280