杭州滨江出现疫情了,回不去了。那就学学 ElasticSearch 吧。
ElasticSearch 是一个开源的高扩展的分布式全文检索引擎。使用 Lucene 作为其核心来实现所有索引和搜索的功能。
Lucene 是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。
Kibana是一个针对Elasticsearch的开源分析及可视化平台。
目前我是在windos上面安装的 elasticsearch 。版本以及使用到的插件和工具如下:
elasticsearch版本:elasticsearch-7.16.3
链接:https://www.elastic.co/cn/downloads/elasticsearch
IK分词器插件:elasticsearch-analysis-ik-7.16.3
链接:https://github.com/medcl/elasticsearch-analysis-ik/releases
图形化界面插件:elasticsearch-head
链接:https://github.com/mobz/elasticsearch-head/
kibana:kibana-7.16.3-windows-x86_64
链接:https://www.elastic.co/cn/downloads/kibana
都是拆箱即用的东西,解压后进bin目录,在windos上点击对应的 如:elasticsearch.bat 即可运行。
其中 IK分词器插件 需要解压在 elasticsearch 如:elasticsearch-7.16.3plugins 的目录中。
Kibana 可以设置为中文,只需要在配置文件 kibana.yml 中加入 i18n.locale: "zh-CN"
kibana.yml 在目录:kibana-7.16.3-windows-x86_64config 下面
ES核心概念
索引 (indices):是一个非常大的文档的集合。如同mysql中的一个库,可以定义字段的类型等。类型 (types):相当于数据库中的表。里面可以存很多 documents。文档 (documents):相当于数据库表中的一行数据。fields:相当于数据库中的字段。
倒排索引:
elasticsearch 使用的是一种称为倒排索引的结构。这种结构适用于快速的全文搜索,一个索引由文档中所有不重复的列表构成,对于每一个词,都有一个包含它的文档列表。例如,现在有两个文档,每个文档包含如下内容:
文档1包含的内容: I love Guo Liangyu
文档2包含的内容: Guo Liangyu love Wang Yisheng
term doc_1 doc_2
假如要搜索 I love ,只需要检索每个包含字条的文档:
两个文档都匹配,但是第一个文档比第二个匹配程度更高。
IK分词器
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配 *** 作,默认的中文分词是将每个字看成一个词,比如 “我爱郭亮宇” 会被分为"我",“爱”,“郭”,“亮”,“宇”,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。
如果我们想让系统识别“郭亮宇”是一个词,需要编辑自定义词库。
步骤:
进入elasticsearch-7.16.3pluginselasticsearch-analysis-ik-7.16.3config目录新建一个my.dic文件,编辑内容:
修改IKAnalyzer.cfg.xml
首先我们启动 elasticsearch.bat 以及 kibana.bat 和 elasticsearch-head
elasticsearch-head:http://localhost:9100/
这里我们可以看见 elasticsearch 的各种信息。
kibana 找到开发工具,然后我们可以通过开发工具 进行命令学习了
http://localhost:5601/app/dev_tools#/console
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)