ElasticSearch入门篇(一)——简介

本文介绍了ElasticSearch的基本概念,包括其作为基于Lucene的分布式搜索和分析引擎的角色,以及倒排索引的重要性。通过学习,理解了ElasticSearch与Lucene的关系以及全文搜索的工作原理。同时,文中提到了ElasticSearch在搜索领域的领先地位,并给出了相关术语的对比。
摘要由CSDN通过智能技术生成

刚接触ElasticSearch不久,还处于学习和探索阶段,在刚刚过去的2017年的最后一个月里,我提交了自己的毕业论文,
在姚老师(姚攀的博客)的帮助下,使用ElasticSearch及其搭配的开发工具Kibana以及head实现了一个新闻搜索引擎,
现把这段时间的学习过程和收获从头整理一遍,连载到ElasticSearch入门篇中,
作为给自己的一个总结,也作为对姚老师的一个交代,感谢姚老师这些日子对我的帮助和指导。

首推官方学习文档:https://www.elastic.co/guide/cn/index.html

ElasticSearch是什么

第一次听说这个词还是姚老师对我讲的,那时我对ElasticSearch一无所知,现在我在写我的ElasticSearch学习总结,
有需要更专业的指导的同学可以去访问他的博客(姚攀的博客)或给他留言或购买他写的书。

ElasticSearch是一个基于Lucence构建的分布式的、可扩展的、实时的、开源的全文搜索和数据分析引擎,
也是一个具有良好搜索功能的数据库。从它的定义中就能很好的了解到它的优点。

全文搜索:是指扫描文章中的每一个词,对每一个词建立相应的索引,指明该词出现在哪篇文章中以及出现的频次,
检索时程序就能根据这个索引进行相应的查找,显然这里会涉及到“分词”和“倒排索引”的概念,下面会介绍。

这里写图片描述

根据https://db-engines.com/en/ranking官方数据可以看出来,ElasticSearch是使用量第一的搜索引擎,所以值得去学习。

Lucence和倒排索引

Lucence是什么:Lucence是一个开源的、高性能的全文搜索引擎工具库,它和ElasticSearch的区别如下:
Lucence只是工具库,用它能够实现搜索功能,但是很多代码需要我们去完成,使用起来非常复杂,
而ElasticSearch是基于Lucence的、用java开发的搜索引擎,它是一个服务,或者说是一款产品,
很多工作它都能帮我们完成而不需要我们去实现,隐藏了Lucence的复杂性。
它们的关系就好像是利用发动机构建一辆汽车。

倒排索引:进行快速的全文搜索的关键是构建倒排索引,Lucence使用倒排索引结构,所以ElasticSearch也使用了倒排索引机制,
通过分词器(需要安装)获取每个单词,然后为这些单词构建一个由“单词”“文档号”构成的列表,
由于这里是根据单词查找它所在的文档,所以称为“倒排”,当然这些工作都不要我们来做,
但是理解搜索的原理非常重要。比如:
文档1:中国南京
文档2:南京今天下雨
文档3:今天需要打伞
则ES构建的倒排索引结构如下:

单词文档号
中国1
南京1,2
今天2,3
下雨2
需要3
打伞3

当搜索“南京”时,程序会返回文档1和2,当然,实际的分词过程肯定要比上面复杂的多,但是原理就是这样。

相关术语

相比于传统的关系型数据库,ElasticSearch与它们在相关术语上是有区别的,它们的对应关系如下(来自姚攀的博客):

关系型数据库(如MySQL)ElasticSearch
数据库(database)索引(index)
表(table)类型(type)
行(row)文档(document)
列(column)字段(field)
模式/表结构(schema)映射(mapping)
索引倒排索引
INSERTPUT
DELETEDELETE
UPDATEPUT/POST
SELECTGET

上面表格中的对应关系很直接也很简单,事实上也是如此。除此之外,ElasticSearch中还有几个特殊的概念(来自ES官方文档):

节点:一个运行中的 Elasticsearch 实例称为一个 节点。

集群:集群是由一个或者多个拥有相同 cluster.name 配置的节点组成, 它们共同承担数据和负载的压力。
当有节点加入集群中或者从集群中移除节点时,集群将会重新平均分布所有的数据。


关于ElasticSearch,我觉得初学阶段了解检索机制及其基本概念就可以了,后续在使用过程中会慢慢对这些概念有自己的领悟。

我心心期盼的2018年终于来了,愿你我都能拥有美好年华。

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值