elasticSearch基础

Elasticsearch是一款分布式的RESTful风格的搜索和数据分析引擎,能够存储PB级别的数据,并提供高效的查询和聚合分析接口。广泛应用于电商搜索、日志分析等领域。

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

elasticSearch基本介绍

作为目前非常流行的分布式搜索引擎技术,es可以非常方便快捷的实现大数据的查询搜索和统计分析,故而从今天开始探索一下神秘的es,以弥补自己搜索引擎方面的不足。截至本文发表,官网es的版本已经发布到6.3。

什么是es
      Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎,他可以集中存储PB级别的大量数据,然后提供给调用者查询和聚合分析的接口。
什么地方可以用到es(这里仅仅列举我们项目用到的也是最常用的)
      1.电商平台的订单和商品搜索功能
      2.应用系统的日志数据分析(典型的就是elk日志采集分析框架)
更多的用例可以去官网了解
实现原理
      通过有限状态机实现了用于全文检索的倒排索引,实现了用于存储数值数据和位置数据的 BKD 树, 以及用于分析的列存储。
数据结构
index:索引,它是一组特征相同数据的集合,类似于关系型数据库的database。被创建于节点之上,一个es节点可以创建多个索引。
type:索引的逻辑分区,类似于关系型数据库的表。在6.0版本后逐渐废弃。
document:文档,索引中存储数据的基本单元,类似于关系型数据库表中的某行。
shard:分片,一个索引可以储存大量的数据,但是在单节点模式下,这些数据的容量可能超出单个节点的硬件存储限制。尽管可以存储下,但是当数据到达1T的时候对索引查询性能会有很大的影响,为了解决这个问题,es提供了把你的索引分为多块存储的功能,这些块就是分片。分片是独立存在于集群中的任何节点的,并且你可以根据实际的需要设置分片的数量。索引分片的分配和索引分片上数据的查询对用户来说是完全透明的。
replication:副本,为了容错而建立的分片的副本,当机器活是网络故障时可以做到数据的恢复和服务的可用。
默认情况下,es节点给每个index分配5个分片和1个副本,如果你的集群有2个节点的话,那么你一共有5个主分片和5个副本共10个分片。

### Elasticsearch 基础教程与入门指南 Elasticsearch 是一种基于 Lucene 的分布式全文搜索引擎,广泛应用于日志分析、实时数据分析以及复杂查询场景。以下是关于其基础知识的详细介绍: #### 1. 核心概念 - **Index**: 类似于传统关系型数据库中的“数据库”,用于存储一组具有相似特征的文档集合[^4]。 - **Document**: 表示一条记录或对象,类似于关系型数据库中的行。它是 Elasticsearch 中最基本的数据单位[^1]。 - **Type (已废弃)**: 在早期版本中,`Type` 被用来区分同一索引下的不同类型数据;然而,在 Elasticsearch 6.x 版本之后逐步弱化,并最终在 7.x 完全移除[^4]。 #### 2. 查询机制 Elasticsearch 使用倒排索引来实现高效的搜索能力。相比于传统的正向索引(需逐一扫描所有文档),它通过预先构建关键词与其关联文档之间的映射来显著提升检索效率[^5]。 #### 3. 配置管理 为了满足特定需求或者优化性能表现,可以通过修改配置文件来自定义行为模式。如果采用 Docker 方式部署,则可以借助 `-v` 参数挂载外部定制化的 YAML 文件至容器内部标准路径下完成设置覆盖[^3]。 #### 4. 数据建模注意事项 尽管支持一定形式上的结构间联系表达(如父-子模型),但由于缺乏原生事务保障加之额外开销影响等原因,在实际项目开发过程中往往推荐采取扁平化设计思路——即将原本可能涉及多方交互的信息直接嵌入单一JSON实体之中保存起来从而减少对外部参照依赖程度进而达到提高读写速度的目的[^2]。 ```python from elasticsearch import Elasticsearch es_client = Elasticsearch("http://localhost:9200") response = es_client.search( index="example_index", body={ "query": { "match": {"field_name": "value"} } } ) print(response['hits']['total']) ``` 以上代码片段展示了如何利用 Python SDK 对目标索引执行简单的匹配查找操作并获取结果总数。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值