Elasticsearch基本知识和操作

本文深入讲解Elasticsearch的原理及应用,包括倒排索引、分布式存储和搜索服务,适用于海量数据分析、站内搜索和数据仓库场景。通过实例解析Lucene倒排索引机制,介绍ES集群、节点、分片等概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 慕课网教程:  https://www.imooc.com/learn/889

ES-提供易用的高性能的实时的分布式搜索服务

应用场景:

1.海量数据分析引擎(不需要自己写一个系统来分析自己的海量日志,直接使用ES就可以了)

2.站内搜索引擎

3.作为一个数据仓库(利用其强大的分布式存储能力将它作为一个数据仓库产品使用)

例如;github的站内搜素功能。

 

1.1Lucene倒排索引:

搜索引擎的关键就是建立倒排索引结构。
假设有两篇文章1和文章2
文章1内容:Tom lives in Guangzhou, I live in Guangzhou,too
文章2内容:He once live in Shanghai
1.对内容进行处理,取得关键词
文章1所有关键词: [tom][live][guangzhou][i][live][guangzhou]
文章2所有关键词:[he][live][Shanghai]
2.建立倒排索引
之前的对应关系是:“文章号”对应“文章中所有关键词”
倒排索引把这个关系倒过来 :“关键词”对应“拥有该关键词的所有文章号”
仅知道关键词在文章中出现还不够,我们还需要知道关键词在文章中的出现次数和位置(字符位置(是文章中的第几个字符) or 关键词位置(是文章中的第几个关键词))
这样就像一个字典

1.2基础知识

文本(一段普通的非结构化文字),经过分析(依赖分词器,将文本转化成索引词),转化成索引词(一个能够被索引到的精确值,foo、Foo、FOO几个是不同的索引词)
集群cluster有一个或多个节点组成,对外提供索引和搜索功能。一个集群的默认名字为“Elasticsearch”,一个节点只能加入一个集群,当节点被设置成相同集群名称时,就会自动加入该集群。你可以建立多个独立集群,但每个集群都有不同的名称。

6555104-a439d2bd42935a10.png

节点node
一个节点是一个逻辑上独立的服务,可以存储数据,参与集群的索引和搜索功能。节点会在启动时默认被分配一个节点名,也可以自己为它定义。你可以为一个节点配置加入某个特定集群,默认情况下会加入名为Elasticsearch的集群中。
路由routing
存储一个文档时,他会存储在唯一的主分片中,具体在哪个分片根据文档的ID生成。
分片shard
索引index是指向主分片和副分片的逻辑空间。我们使用时只需要指定分片数量。
为什么需要分片?答:一个索引可以存储很大的数据,可以超过一个节点的物理存储限制,一台物理机器代表的以恶搞节点不一定能存储这么多数据,为了解决这个问题,Elasticsearch将索引分解成多个分片,当你创建一个索引时定义你需要的分片数量。每个分片是一个全功能的独立单元,可以托管在集群的任何节点。
主分片primary shard
当你存储一个文档时,它会首先存储在主分片中,然后复制倒不同的副本中,默认一个索引有5个主分片。你可以事先定制分片数量,分片一旦建立,数量不能更改。
副本分片 replica shard
每一个分片有0个或多个副本,当主分片失败时,可以从副本分片中选择一个作为主分片,查询时也可以到主分片或者副本分片中查询(副本分片和主分片必须部署在不同节点上)
默认情况下,每个索引有5个主分片,每个主分片有一个副本,故集群中至少有两个节点,你将拥有5个主分片,5个副本分片。
注意:一个索引的文档存储数量为2147283519。
索引index
索引时具有相同结构的文档集合。比如一个客户信息索引,一个产品目录索引,i 个订单数据索引。一个集群中可以定义多个索引。
类型type
在一个索引中,可以定义一个或多个类型,类型是索引的逻辑分区,通常一种类型并定义为具有一组公共字段的文档,即一个type下面的document都有相同的field。
文档document
文档是存储在ES中的一个JSON格式字符串,呢个文档都是一个JSON(键值对)对象。
字段field
一个文档中包含0个或多个字段。
主键ID
ID是一个文档的唯一标识,如果存库时没有提供ID,系统会自动生成,文档的index/type/id 是唯一的

注意:在ES6.0中删除了每个索引index具有多个映射类型type的功能。一个index中只能有一个type。 这是计划中完全删除地图类型的第一步。 在5.x中创建的索引将继续支持多种映射类型。

ES操作:链接:https://blog.youkuaiyun.com/weixin_34151004/article/details/86812630

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值