ElasticSearch快速入门

目录

快速入门

快速了解

与MySQL对比

相关组件,概念

增删改查


快速入门

快速了解

一、Elasticsearch 官方定义

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,同时是可扩展的数据存储和矢量数据库,能够应对日益增多的各种用例。作为 Elastic Stack 的核心,Elasticsearch 能够集中存储您的数据,实现闪电般的搜索速度、精细的相关性调整以及强大的分析能力,并且能够轻松地进行规模扩展。

Elasticsearch 是一个基于 Lucene 的开源搜索引擎,提供了一个分布式、多租户的全文搜索引擎,具有 HTTP Web 接口和无模式 JSON 文档。它可以快速地存储、搜索和分析大量的数据。

二、主要特点

  1. 分布式架构:

    • Elasticsearch 可以在多台服务器上运行,自动将数据分布到不同的节点上,实现水平扩展。这使得它能够处理大规模的数据量和高并发的查询请求。

    • 当数据量增加时,可以轻松地添加更多的节点来扩展存储和处理能力,而无需停机或对应用程序进行重大修改。

  2. 高可用性:

    • 通过数据副本机制,即使某些节点出现故障,数据仍然可用。Elasticsearch 会自动将数据复制到多个节点上,确保数据的冗余和可靠性。

    • 如果一个节点发生故障,其他节点可以接管其工作,保证系统的持续运行。

  3. 全文搜索能力:

    • 支持对文本数据进行强大的全文搜索,能够快速找到包含特定关键词的文档。它使用倒排索引技术,将文本中的每个单词与包含该单词的文档进行关联,从而实现快速的搜索。

    • 可以进行复杂的查询,如模糊搜索、通配符搜索、短语搜索等,满足各种不同的搜索需求。

  4. 实时性:

    • 数据可以在写入后立即被搜索到,实现实时的数据分析和查询。这对于需要快速响应变化的应用场景非常重要,如实时监控、日志分析等。

    • 新写入的数据会被快速地索引并可用于搜索,无需等待批量处理或长时间的索引过程。

  5. 灵活的数据模型:

    • Elasticsearch 支持无模式的数据存储,即可以存储任意格式的 JSON 文档,无需预先定义数据结构。这使得它非常适合处理半结构化和非结构化数据。

    • 可以根据实际需求随时添加或修改字段,而不会影响现有数据的存储和查询。

三、主要应用场景

  1. 搜索应用:

    • 构建企业内部的搜索系统,如文档搜索、知识库搜索等。可以快速地搜索和查找企业内部的各种文档、报告、知识库文章等,提高员工的工作效率。

    • 电商网站的商品搜索,提供快速、准确的商品搜索功能,帮助用户找到所需的商品。

  2. 日志分析:

    • 集中存储和分析应用程序的日志数据,快速定位问题和异常情况。可以对日志进行实时监控,及时发现系统中的错误和异常,以便进行快速的故障排除。

    • 安全日志分析,检测潜在的安全威胁和异常行为。通过对安全日志的分析,可以及时发现入侵行为、异常登录等安全问题。

  3. 数据分析:

    • 对大量的数据进行实时分析,如网站流量分析、用户行为分析等。可以快速地聚合和分析数据,生成各种报表和指标,为业务决策提供数据支持。

    • 物联网数据分析,处理和分析来自物联网设备的大量数据,实时监测设备状态和行为。

四、与主流技术的相似性和区别

  1. 与 Solr 的相似性和区别:

    • 相似性:

      • 两者都是基于 Lucene 的开源搜索引擎,都提供了强大的全文搜索功能。

      • 都支持分布式架构,可以处理大规模的数据量。

    • 区别:

      • 数据存储方式:Elasticsearch 是基于 JSON 文档的无模式存储,而 Solr 通常需要定义严格的模式。这使得 Elasticsearch 在处理半结构化和非结构化数据时更加灵活。

      • 实时性:Elasticsearch 具有更好的实时性,数据可以在写入后立即被搜索到,而 Solr 需要一定的时间进行索引更新。

      • 社区活跃度:Elasticsearch 的社区活跃度较高,更新频繁,提供了更多的功能和插件。

  2. 与传统关系型数据库的区别:

    • 数据模型:关系型数据库通常需要预先定义严格的数据模式,而 Elasticsearch 支持无模式的数据存储。

    • 查询语言:关系型数据库使用 SQL 进行查询,而 Elasticsearch 使用基于 JSON 的查询语言 DSL(Domain Specific Language)。

    • 应用场景:关系型数据库适用于结构化数据的存储和管理,以及复杂的事务处理;而 Elasticsearch 主要用于全文搜索和实时数据分析。

什么是elasticsearch? 一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析 系统监控等功能 什么是elastic stack (ELK) ? 是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch 什么是Lucene? 是Apache的开源搜索引擎类库,提供了搜索引擎的核心API

相比与lucene,elasticsearch具备下列优势

  • 支持分布式,可水平扩展

  • 提供Restful接口,可被任何语言调用

与MySQL对比

相关组件,概念

elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)

Kibana数据可视化组件(提供ES可视化界面,可以操作ES)、LogstashBeats数据抓取组件。(这些组件都可以替换)

IK分词器:对中文一个一个词语的划分,避免汉字在ES中每个字都要划分(依赖于某一字典,所以词语有限,但也可以在配置文件中添加自己的扩展字典,删除没必要的词字典)

Mapping映射约束,Analyzer:Mapping中的属性,选择使用哪种分词器。分完的每个词称为term。

增删改查

以下是在 Elasticsearch(ES)中对文档和索引的增删改查操作示例:

一、文档的增删改查

  1. 增加文档

    • 使用 PUT 或 POST 请求向特定索引中添加文档。

    • 示例:

    • 解释:向名为 “my_index” 的索引中添加一个 ID 为 1 的文档,文档包含 “title” 和 “content” 两个字段。

  2. 删除文档

  3. 修改文档

    • 使用 POST 请求结合 “_update” 端点更新文档。

    • 示例:

    • 解释:更新 “my_index” 索引中 ID 为 1 的文档的 “title” 字段。

  4. 查询文档

二、索引的增删改查

  1. 增加索引

    • 通常无需显式创建索引,在添加文档时如果索引不存在会自动创建。但也可以使用 PUT 请求手动创建索引并定义映射。

    • 示例:

    • 解释:创建名为 “new_index” 的索引,并定义了两个字段 “field1” 和 “field2” 的类型。

  2. 删除索引

  3. 修改索引设置或映射

    • 使用 PUT 请求更新索引的设置或映射。

    • 示例:更新索引的副本数量。

    • 解释:将 “my_index” 索引的副本数量设置为 2。

  4. 查询索引信息

    • 使用 GET 请求获取索引的信息。

    • 示例:

    • 解释:查询名为 “my_index” 的索引的信息,包括设置、映射、统计信息等

示例:

Elasticsearch是一款非常强大的开源搜索引擎,它可以帮助我们从海量数据中快速找到需要的内容。它是elastic stack(ELK)的核心组件之一,结合kibana、Logstash、Beats等工具,被广泛应用在日志数据分析、实时监控等领域。\[1\] 在Elasticsearch中,为了提高搜索的性能,它使用了倒排索引的概念。倒排索引是指将文档中的每个词都建立索引,然后通过这些索引来快速定位到包含该词的文档。当我们向Elasticsearch插入一条记录时,它会将记录中的字段建立倒排索引,以便能够快速搜索和检索数据。\[2\] 为了能够快速找到某个词,Elasticsearch使用了Term Dictionary。Term Dictionary将所有的词进行排序,并使用二分法查找词,类似于我们在学校时老师教我们使用字典的方式。这种查询方式类似于传统关系型数据库的B-Tree索引方式,但并不是Elasticsearch快速的原因。\[3\] 以上是elasticsearch快速入门介绍。 #### 引用[.reference_title] - *1* [Elasticsearch快速入门](https://blog.csdn.net/ks_1998/article/details/121237513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【ElasticSearchElasticSearch 快速入门(精讲)](https://blog.csdn.net/m0_45067620/article/details/120377816)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值