栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

初识Elasticsearch

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

初识Elasticsearch

目录

 介绍:

基本概念

Mysql与Elasticsearch场景:

安装elasticsearch与kibana

 安装kibana(跟ES要在同一个网络中)

分词器

 IK分词器:

总结:


 

 介绍:

好处:可以帮助从海量数据中查找需要的内容;

什么是elasticsearch?

一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能;

什么是elastic stack(ELK)?

是以elasticsearch为核心的技术栈,包括beats、logstash(数据收集)、Kibana(图形展示)、elasticsearch;

Lucene:

是一个搜索类库,提供了很多api,elasticsearch是基于此实现的;

正排索引:

每一行进数据行遍历,看其中的内容是否满足条件,如果满足就将其放入词库中,否则进行删除;

根据文档id创建索引,查找词条时,必须先找到文档,然后判断文档中是否含有该词条;

倒排索引:

基于词条创建索引,以词条作为唯一,按照词条分,记录含有该词条的文档信息——>保证了词条的唯一性

查询时先根据含有的词条->得到文档id,进而得到文档title

 


基本概念

 在elasticsearch中索引相当于数据库中的表,索引中文档的字段映射约束信息,类似于表中的结构约束;

 Restful风格的好处:可以利用url进行请求增删改查,脱离了语言;

Mysql与Elasticsearch场景:

比如商品的查询——>用Elasticsearch,如果是增删改——>用mysql:因为他删除事务类型的操作,可以保证数据的安全和一致性;


安装elasticsearch与kibana

安装kibana:是因为它是Elasticsearch图形化界面方便DSL(es中的crud实现)

1.加载得到镜像

  

 2.执行得到es容器,并且加载到es-net网络中

然后两个-p:第一个是用户访问的端口,第二个是各个es节点互连的一个端口;

最后就是镜像名称

docker run -d 
	--name es 
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" 
    -e "discovery.type=single-node" 
    -v es-data:/usr/share/elasticsearch/data 
    -v es-plugins:/usr/share/elasticsearch/plugins 
    --privileged 
    --network es-net 
    -p 9200:9200 
    -p 9300:9300 
elasticsearch:7.12.1

 最后再docker ps确认一下容器是否有了

 用户访问,看es响应结果(es信息)

 安装kibana(跟ES要在同一个网络中)

作用:帮助Elasticsearch写CRUD语句,比较方便,有提示;

在同一个网络,可以根据容器名称互连,因为Kibana需要辅助ES的CRUD操作,所以需要知道ES地址,并且版本需要一致;

它的启动比较慢,docker可以利用docker logs查看日志;

docker run -d 
--name kibana 
-e ELASTICSEARCH_HOSTS=http://es:9200 
--network=es-net 
-p 5601:5601  
kibana:7.12.1


 这玩意巨难启动成功,我是加了内存,不然es会挂掉,Kibana和es占用内存太大了 

启动容器成功后,访问Kibana:菜单中的Dev Tools就  是ES的控制台

 因为之前Kibana容器启动时指定了Elasticsearch的路径,所以我们只需要在Kibana的控制台输出语句就可以执行了(本质:发送一个Restful的请求)


分词器

 ES分词器对中文不友好,只能一个字一个字算一个词,比如一个手机,出现大手打手.....

 IK分词器:

根据中文进行分词

查看数据卷,将ik文件挂载到数据卷上

docker volume inspect es-plugins

然后根据数据卷所在位置,将ik文件上传,然后restart elasticsearch服务

有两种分词模式:

ik_smart:最小粒度,分词较少,但是占用内存就少了

ik_max_word:最大粒度,分词会较多

 ik分词器-拓展词库(IkAnalyzer.xml文件)

 ext.dic:拓展词库

stopword.dic:一些不需要分词的词库

 在这两个文件中,我们可以加入想要分词的词语,以及敏感词

总结:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/922280.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号