01_基础

0.前言

0.1.es的框架

对es进行的一层封装https://ci.bbossgroups.com/#/README?id=elasticsearch-demo
更便于操作,例如数据库记录更新,es同步更新

0.2.es和mysql数据同步

https://blog.csdn.net/RuiKe1400360107/article/details/104270421

image.png

1.初始ElasticSearch

1.0.引入

图片.png
图片.png
  • 搜索服务器,服务器就是一个软件,能够对外提供服务。
  • 搜索引擎网站
  • 几乎所有的应用程序中都会提供搜索相关的功能,比如电商网站搜索商品,音乐网站搜索歌曲
  • 搜索和查询是一回事,但是又不一样
  • 查询是select * from xxx 这个是针对于关系型数据库的查询方式
  • es做搜索和关系型数据库做查询有啥不一样?
  • 搜索引擎网站、电商网站搜索、音乐网站搜索是否是用关系型数据库做查询呢?不是。为啥不用关系型数据库做查询呢

1.1.数据库查询存在的问题

1.1.1.问题1
图片.png
  • 模糊查询左边加%,title这一列上的索引将失效。索引失效意味着查询会一条一条比对,性能低。
1.1.2.问题2
图片.png
  • 搜索既想包含华为又想包含手机的信息,华为或者手机有一个词包含就要信息
  • %华为手机%这种搜索不能满足条件

1.2.倒排索引

图片.png

关系型数据库查询存在的两个问题通过倒排索引来解决
图片.png

大脑存储数据都是正向索引。所以第一个问题很难回答,但是第二个问题就很简单
图片.png
  • 文本怎么拆分,单独的一个字或者相邻的两个字、三个字...能组成词的
  • value存储的是文本内容,会越来越庞大,所以需要做简单的优化。value放诗的唯一标识比如诗名。通过唯一标识去找诗的内容就很快
    图片.png
    图片.png

1.3.ElasticSearch数据的存储和搜索原理

image.png
image.png

1.3.1.存储

image.png

分词,过程不用管,自动完成
image.png
image.png
image.png

1.3.2.搜索

image.png
  • 搜索手机关键字,查词条,匹配之后找value,再去把数据找出来。即使数据库有1亿条记录,词条可没有这么多记录。

1.4.ElasticSearch概念

image.png
  • Lucene是一套搜索api,基于Lucene写代码也是可以的,但是非常麻烦,需要对搜索的各个细节了如指掌。比如分词,es帮你自动完成,Lucene需要自己写代码分词。es相当于是对Lucene的封装。
  • Lucene有两个实现,一个solr,一个是es,solr是先出来的产品,es是后出来的产品,es性能高一点,特别是做实时搜索(一边存储数据,一边搜索)。
  • 海量数据查询,一般用于互联网项目,数据量大,因为引入es还是比较复杂的,传统项目如果数据量不大不建议使用。
  • es和mysql区别
    image.png

2.安装ElasticSearch

2.1.es安装

  • 上传到linux put f:/elasticsearch-7.4.0-linux-x86_64.tar.gz
  • 解压 tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz -C /opt
  • es解压后的目录包含jdk
  • 修改配置vim /opt/elasticsearch-7.4.0/config/elasticsearch.yml
  • shift+g切换到最后
    image.png
  • 卸载linux已经安装的jdk,卸载完后重启服务器
  • 在bin目录下,执行./elasticsearch(出了两个错误)
  • OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.解决vim jvm.options,-XX:+UseConcMarkSweepGC 改为 -XX:+UseG1GC
  • os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Not enough space' 解决vim jvm.options -Xms512m -Xmx512m最低要求
  • 该错误是正常的,can not run elasticsearch as root
    image.png

    useradd lines

  • 授权
    image.png
  • 为新用户设置相关信息
    image.png
  • 启动
    image.png
  • 访问
    image.png

    云服务器需要开放端口
    image.png
    image.png

2.2.Kibana安装(官方提供的客户端操作工具)

image.png
image.png
  • 上传put f:/kibana-7.4.0-linux-x86_64.tar.gz
  • 解压tar -zxvf kibana-7.4.0-linux-x86_64.tar.gz -C /opt(由于日志信息很多,可能会报内存溢出异常)
  • 配置vim /opt/kibana-7.4.0-linux-x86_64/config/kibana.yml
    image.png

    此处es和kibana在一台机器上,所以elasticsearch.hosts: ["http://127.0.0.1:9200"]的ip是127.0.0.1

  • 启动 直接启动报错
    image.png

    ./kibana --allow-root

  • 修改内存(可以不修改)
    image.png
  • 同时运行es和kibana需要2g内存
  • 云服务器开放端口
  • 访问http://****:5601
    image.png

3.ElasticSearch核心概念

image.png
image.png

4.操作ElasticSearch(脚本操作,运维人员使用)

4.1.RESTful风格介绍

image.png

4.2.基于postman操作

4.3.基于kibana操作

4.4.操作索引(基于postman)

image.png
image.png
4.4.1.添加索引
image.png
image.png
4.4.2.查询索引
image.png
4.4.3.删除索引
image.png

删除后再查
image.png
4.4.4.关闭索引

不想删,也不想别人访问
image.png

查还是可以查到,但是不能往里面添加数据了
image.png
4.4.5.打开索引
image.png
4.4.6.小结
image.png

4.5.操作映射(基于kibana)

4.5.1.es支持的数据类型
  • 简单数据类型
    image.png
    image.png
    image.png
  • 复杂数据类型
    image.png
4.5.2.添加映射
image.png
image.png
image.png
4.5.3.查询映射
image.png
4.5.4.添加字段
image.png
4.5.5.小结
image.png

4.6.操作文档

4.6.1.增删改查
image.png
4.6.2.总结
image.png

4.7.分词器

4.7.1.介绍
image.png

重点关注一句话,es内置分词器对中文很不友好。
image.png
image.png

需要安装中文分词器ik分词器

4.7.2.IK分词器安装
image.png
image.png
  • put f:/apache-maven-3.1.1-bin.tar.gz
  • tar zxvf apache-maven-3.1.1-bin.tar.gz -C /opt
  • ln -s apache-maven-3.1.1 maven(opt目录设置一个软链接)
  • 配置maven
    image.png
  • put f:/elasticsearch-analysis-ik-7.4.0.zip
  • cp elasticsearch-analysis-ik-7.4.0.zip /opt
  • unzip elasticsearch-analysis-ik-7.4.0.zip(报错-bash: unzip: command not found
    )
  • yum install zip
  • yum install unzip
  • 解压完成后,查看目录,经典的maven结构
    image.png
  • 先打包,获取jar(打包过程中出现插件下载不了Plugin org.apache.maven.plugins:maven-enforcer-plugin:1.2 or one of its dependencies could not be re,更换阿里云的国内镜像。)
  • 移动jar
    image.png
4.7.3.IK分词器使用
image.png

4.8.查询文档

image.png
4.8.1.词条查询
  • 词条查询,title文本是华为3G手机,分词的词条可能是华为、3G、手机,搜索条件是华为手机,词条没有这四个字,查不出来,词条需要和搜索条件完全匹配
    image.png
  • 删除索引,重新建索引、建映射、新增文档
    image.png
  • 创建完索引,可以不添加索引对应的映射,直接添加文档,会动态生成映射
  • 再次查询,输入北京可以查到两条,输入北京昌平,词条没有这四个字所以查不到
    image.png
4.8.2.全文查询
  • 全文查询,title文本是华为3G手机,分词的词条可能是华为、3G、手机,然后对搜索条件华为手机进行分词,求并集
  • 输入北京昌平可以查询到记录
    image.png
  • 输入华为手机也可以查到到记录
    image.png
4.8.3.总结
image.png

创建索引的时候,某个字段是text,需要指定分词器,不指定就是默认的standard

5.ElasticSearch JavaAPI

5.1.SpringBoot整合es

image.png
  • 不需要引入web坐标
  • es没有start启动器支持,用spring也是引入这些坐标


    image.png
    image.png
    image.png
    image.png

5.2.操作索引

5.2.1添加索引
  • 方式一:只添加索引
    image.png
  • 方式二:添加索引和映射
    image.png

    注意同名的类要选择org.elasticsearch.client包下的

5.2.2查询索引
5.2.3删除索引
5.2.4判断索引是否存在
1621213339(1).jpg

5.3.操作文档(java代码一般操作文档)

5.3.1.添加文档
图片.png
5.3.2.修改文档
5.3.3.根据id查询文档
5.3.4.删除文档
图片.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352

推荐阅读更多精彩内容

  • SpringBoot是用来快速构建Spring项目的一门技术 1.SpringBoot概述 1.1.SpringB...
    广坤丶叔阅读 217评论 0 0
  • 公司的业务日志数据量暴涨,内存很快就不够用,时常出现OOM,并且在 failover 的过程中写入速度不理想,很是...
    大数据之心阅读 9,658评论 0 19
  • 1.下载简介 官方网站www.mysql.com[http://www.mysql.com]· 安装方式:1、源码...
    linux_wjh阅读 289评论 0 1
  • 学习地址为极客时间《Elasticsearch核心技术与实战》,这只是我做的笔记,仅供参考; 三、Elastics...
    RickYinG阅读 799评论 0 1
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,562评论 0 11