ElasticSearch 安装与配置 (windows)

新工作需要所以开始学一下。。。

elasticsearch的概念和基本原理:

elasticsearch是一个类似于nosql数据库的东西,基于Lucene,以json格式储存数据,采用了倒序索引(也叫反向索引),主要用于信息抓取(我的感觉就是字符串查找),所以主要应用在搜索引擎和自然语言处理方面。

比如有30篇文章,我想找一个字符串出现的位置,普通情况我们要全文搜索,而elasticsearch在存储时,会先把文章分词,然后保存各个关键词出现的位置。这种就是倒序索引(说实话我觉得和普通索引原理差不多,差别有点微妙)。

然后采用压缩技术保证空间的最大利用。

 

elasticsearch的储存方法和压缩技术:

存了10篇文章,其中第1,3,5,9里面有“张三”这个词出现。

es就会存入:"张三":1,3,5,9;

然后压缩为:"张三":1010100010  (10位2进制数字,对应出现的文章id,这样需要存的数字只有一个,比存1,3,5,9要节省很多,以此压缩存储空间)

上面这个就是5.0之前的压缩方法:bitmap。

 

不难想象,这样存储需要的空间是线性增长的,比如你需要存6553500个文档,那么你就需要6553500位的二进制数字存储,那么一个字段的索引中的一个出现位置就需要接近100 * 2byte的空间来表示,所以之后进行了优化(压缩套压缩)

Roarding bitmaps:把上面压缩后的数字除以65535然后保存商和余数。使得结果进一步压缩。然后保存为100,0 两个数字。需要空间减少了99倍。

这样等于把数据以65535一组分成了很多组。一个索引存的是2,65534,说明这个词在第2组的第65534篇文章中出现。

 

 

 如果数据量大于4096个值,用bit set存,如果比较少的话,就直接用2bytes存每个值。 (用java语言,就是数据多就用 Set<byte>来增加效率, 数据少就直接用 short[])。

 

系统win7 64

ES的主要储存方式是json,所以需要能看懂json数据。

 

1. 下载

https://www.elastic.co/cn/downloads/past-releases

 

 

 

 

 

选工具和版本,然后下载(网上使用教程很多都是6.2.4,不过我这里下载的最新版本)。

 

elasticsearch本质是存储关键词和出现的位置,英语的句子中单词是用空格和标点符号分开的,很好分词。 I am a student。  ->  I,am,a,student

但是我们现在处理语言主要针对汉语,所以自带的分词器就不好用了,es会默认每个字一个词,因此需要绑定插件。 

现在主要的中文分词是用的IK(之前停止更新过一段时间,当时最多支持到elatsicsearc6.4.2,所以当年很多教程安装elasticsearch的时候选择了相对早期的6.2.4,然后那些按教程来的教程也都用的6.2.4...)。

不过KI最近貌似又开始更新了,而且更新到了2020.4.1的最新版本,所以这里我选择下载elasticsearch的最新版本。

 

 

 下载zip包,这样就不用安装了-。-

然后找个文件夹解压,完成。

 

2. 运行

运行bin文件夹下的 elasticsearch.bat   

 

 

elasticsearch的绑定端口是9200和9300,启动后打开浏览器,输入

http://127.0.0.1:9200/

可以看到json格式的elasticsearch信息,说明安装成功

 

 

 

3. 添加IK插件

 github: https://github.com/medcl/elasticsearch-analysis-ik/releases

因为是外国服务器所以可能下载会很慢- -我是网上找了个别人下好的百度盘的

https://www.cnblogs.com/jhtian/p/12688246.html

 

下载后解压,新建一个文件夹改名analysis-ik  (很老的版本是改名ik),然后放到elasticsearch的plugins文件夹下。

 

 

再次启动elasticsearch, 看到日志里显示ik加载成功(如果路径错了的话会闪退)。

 

 

posted @ 2020-04-27 10:03  不咬人的兔子  阅读(4790)  评论(0编辑  收藏  举报