Elasticsearch介绍及其索引库的创建删除和重新绑定

这篇具有很好参考价值的文章主要介绍了Elasticsearch介绍及其索引库的创建删除和重新绑定。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、首先来介绍一下 Elasticsearch:

Elasticsearch是一个开源的分布式搜索和分析引擎,基于Apache Lucene构建。它提供了一个快速、实时的搜索和分析功能,适用于各种用例,包括全文搜索、日志和指标分析、安全事件检测等。

主要特点包括:

  1. 分布式架构:Elasticsearch采用分布式架构,可以水平扩展以处理大量数据和请求。它将索引划分为多个分片,并将这些分片分布在集群中的多个节点上,从而实现数据的并行处理和高可用性。

  2. 实时搜索:Elasticsearch提供了实时搜索功能,可以快速地检索和分析大规模数据,并在几乎实时的速度下返回结果。这使得它非常适用于需要快速响应的应用场景,如日志分析和监控系统。

  3. 多种数据类型支持:Elasticsearch支持多种数据类型的索引和查询,包括文本、数字、日期、地理位置等。这使得它可以用于各种不同类型的数据分析和搜索。

  4. 丰富的查询功能:Elasticsearch提供了丰富而灵活的查询功能,包括全文搜索、过滤、聚合等。它还支持复杂的查询语法和自定义查询逻辑,使用户可以根据自己的需求进行定制化的搜索和分析。

  5. 易于集成:Elasticsearch与许多其他流行的开源工具和技术(如Logstash、Kibana、Beats等)集成紧密,可以轻松地与它们一起构建完整的数据处理和分析解决方案。

Elasticsearch介绍及其索引库的创建删除和重新绑定,elasticsearch,大数据,搜索引擎

 

2、Elasticsearch和MySQL在设计和应用方面有一些显著的区别:

  1. 数据存储方式

    • MySQL是一种关系型数据库管理系统(RDBMS),它使用表格和行来组织和存储数据,并支持 SQL 查询语言。
    • Elasticsearch是一种面向文档的分布式搜索和分析引擎,它使用倒排索引和分布式文档存储来存储和索引数据。
  2. 数据模型

    • MySQL使用固定模式(schema),需要在创建表格时定义表格的结构和字段类型。
    • Elasticsearch是schema-less的,它允许灵活地索引各种类型的文档,而无需预先定义模式。
  3. 查询语言

    • MySQL使用结构化查询语言(SQL)来执行各种查询操作,包括插入、更新、删除和查询。
    • Elasticsearch使用基于 JSON 的查询语言来执行各种搜索和分析操作,包括全文搜索、过滤、聚合等。
  4. 搜索和分析功能

    • Elasticsearch专注于搜索和分析,提供了强大的全文搜索、聚合、地理空间搜索等功能。
    • MySQL虽然也支持一些基本的搜索和聚合操作,但其功能相对较为有限,主要集中在传统的关系型数据库功能上。
  5. 实时性和扩展性

    • Elasticsearch具有良好的实时性和可扩展性,可以处理大量的实时数据,并支持水平扩展以应对高负载。
    • MySQL在处理大规模数据和高并发访问时可能会遇到性能瓶颈,需要通过垂直或水平扩展来提高性能和容量。

       总的来说,Elasticsearch适用于需要实时搜索和分析大规模数据的应用场景,而MySQL适用于传统的关系型数据存储和处理场景。在某些情况下,两者也可以结合使用,例如使用MySQL作为主要数据存储,而使用Elasticsearch作为搜索引擎来提供更快速和灵活的搜索功能。

Elasticsearch介绍及其索引库的创建删除和重新绑定,elasticsearch,大数据,搜索引擎

Elasticsearch使用倒排索引(Inverted Index)来支持全文搜索和分析功能。倒排索引将文档中的每个词(或短语)映射到包含该词的文档列表,从而实现了快速的全文搜索。

Elasticsearch介绍及其索引库的创建删除和重新绑定,elasticsearch,大数据,搜索引擎 

 

3、怎么在elastic创建 Elasticsearch索引库:

创建索引库,最关键的是分析mapping映射,而mapping映射要考虑的信息包括:

Elasticsearch介绍及其索引库的创建删除和重新绑定,elasticsearch,大数据,搜索引擎为了实现多个属性一起查询会使用all ,代码如下:

PUT /hotel
{
  "mappings": { // 定义索引的映射设置
    "properties": { // 指定每个字段的属性和数据类型
      "id": { // id字段
        "type": "keyword" // 数据类型为关键字,不进行分词
      },
      "name":{ // name字段
        "type": "text", // 数据类型为文本
        "analyzer": "ik_max_word", // 使用ik_max_word中文分词器进行分词处理
        "copy_to": "all" // 将该字段的值复制到名为"all"的字段中
      },
      "city":{ // city字段
        "type": "keyword", // 数据类型为关键字,不进行分词
        "copy_to": "all" // 将该字段的值复制到名为"all"的字段中
      },
      "all":{ // all字段
        "type": "text", // 数据类型为文本
        "analyzer": "ik_max_word" // 使用ik_max_word中文分词器进行分词处理
      }
    }
  }
}

相关语句:

  • 查询Elasticsearch索引库:GET /hotel/_mapping
  • 查询Elasticsearch里的数据:GET /hotel/_search

如果觉得当前索引库不满意,可以查询创建一个索引库hotel1,然后使用如下语句,把hotel1绑定到hotel关联的Elasticsearch数据库:

//使用 Reindex API 将现有索引中的数据重新索引到新创建的索引中。例如:
POST _reindex
{
  "source": {
    "index": "your_old_index" //hotel
  },
  "dest": {
    "index": "your_new_index" //hotel1
  }
}
  • 删除索引库:DELETE /your_old_index

4、最后对比一下Elasticsearch和Mysql分别使用什么索引:

Elasticsearch和MySQL分别使用不同类型的索引来支持其各自的查询和搜索功能:

Elasticsearch:

  1. Elasticsearch使用倒排索引(Inverted Index)来支持全文搜索和分析功能。倒排索引将文档中的每个词(或短语)映射到包含该词的文档列表,从而实现了快速的全文搜索。
  2. 此外,Elasticsearch还支持其他类型的索引,如地理空间索引(Geo Index)、日期索引(Date Index)等,以便于特定类型的搜索和分析。

MySQL:

  1. MySQL主要使用B树索引(B-tree Index)来加速对表格中数据的查找和访问。B树索引适用于范围查询、等值查询和排序操作,能够有效地加速对表格中的数据行的检索。
  2. MySQL还支持全文索引(Full-Text Index),它可以用于全文搜索功能,但相较于Elasticsearch的倒排索引,其功能相对较为有限。

       总的来说,Elasticsearch的主要索引结构是倒排索引,适用于全文搜索和分析;而MySQL主要使用B树索引来支持关系型数据库的各种查询操作,但也可以使用全文索引来实现一定程度的全文搜索功能。文章来源地址https://www.toymoban.com/news/detail-849202.html

到了这里,关于Elasticsearch介绍及其索引库的创建删除和重新绑定的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Boot Elasticsearch7.6.2实现创建索引、删除索引、判断索引是否存在、获取/添加/删除/更新索引别名、单条/批量插入、单条/批量更新、删除数据、递归统计ES聚合的数据

    注意:我的版本是elasticsearch7.6.2、spring-boot-starter-data-elasticsearch-2.5.6 引入依赖 有时候你可能需要查询大批量的数据,建议加上下面配置文件

    2024年02月13日
    浏览(52)
  • ElasticSearch7.3学习(十六)----RestHighLevelClient Java api实现索引的创建、删除、是否存在、关闭、开启

    注意:导入的包区别,不同的包创建索引的方式不同。博主亲身实践,具体体现在createIndexRequest.mapping()里面。读者可自行试验。  由此可以猜想一下: 可以看到上述两种方式导入的包的子类名是相同的,但是具体对索引的操作方式可能是不同的。具体的区别博主暂时还不清

    2024年02月16日
    浏览(36)
  • 【Elasticsearch篇】详解使用RestClient操作索引库的相关操作

    Elasticsearch是一个开源的分布式搜索和分析引擎, 用于实时搜索、分析和存储大规模数据 。它基于Apache Lucene库构建,提供了一个简单而强大的分布式搜索解决方案。 Elasticsearch具有以下特点: 分布式架构:Elasticsearch可以在多个节点上分布数据,并自动处理数据的复制、故障

    2024年01月24日
    浏览(35)
  • [C++项目] Boost文档 站内搜索引擎(3): 建立文档及其关键字的正排 倒排索引、jieba库的安装与使用...

    之前的两篇文章: 第一篇文章介绍了本项目的背景, 获取了 Boost 库文档 🫦[C++项目] Boost文档 站内搜索引擎(1): 项目背景介绍、相关技术栈、相关概念介绍… 第二篇文章 分析实现了 parser 模块. 此模块的作用是 对所有文档 html 文件, 进行清理并汇总 🫦[C++项目] Boost文档 站内搜

    2024年02月07日
    浏览(41)
  • ElasticSearch删除索引的命令

    ElasticSearch删除索引的命令 当前命令操作是在Kibana中操作 删除单个索引 DELETE 索引名称 删除多个索引 DELETE 索引名称1,索引名称2 删除全部索引 删除索引的中的全部数据 注意 Elasticsearch查询删除的时候,不是立即删除。在执行删除操作时,Elasticsearch会先将要删除的文档标记为

    2024年04月15日
    浏览(44)
  • ElasticSearch删除索引【真实案例】

    项目中使用了ELK技术栈实现了日志管理,但是日志管理功能目前并没有在生产上实际使用。 但ELK程序依然在运行,导致系统磁盘发生告警,剩余可用磁盘不足10%。 所以临时的解决办法是:删除这些没有使用的ES索引数据。 ElasticSearch提供了Web API可以删除索引。详见 删除索引

    2024年02月15日
    浏览(30)
  • ElasticSearch定期删除索引

    项目中使用EFK进行日志管理,因磁盘空间有限,故有如下需求: 日志保留60天 超过60天的,能够自动删除 通过查阅资料发现,可以使用 索引生命周期策略 来实现。 索引生命周期策略主要包含如下几种情况: 热阶段(必需):将最近的、搜索最频繁的数据存储在热层中。热

    2024年02月15日
    浏览(36)
  • 索引的创建、查看、删除

    从 功能逻辑 上说,索引主要有 4 种,分别是普通索引、唯一索引、主键索引、全文索引。 按照 物理实现方式 ,索引可以分为 2 种:聚簇索引和非聚簇索引。 按照 作用字段个数 进行划分,分成单列索引和联合索引。 普通索引 在创建普通索引时,不附加任何限制条件,只是

    2024年02月07日
    浏览(28)
  • ES(elasticsearch)删除指定索引

    需要删除指定的索引 执行命令 比如:DELETE /mysql-status_-2023.06 执行结果: 执行命令 比如:HEAD /mysql-status_-2023.06 执行结果: 说明已经删除完毕 删除命令: DELETE /索引名 查看是否删除成功: HEAD /索引名 查看索引命令: GET /索引名称 批量查看索引命令: GET /索引名称1,索引名称

    2024年02月11日
    浏览(52)
  • es 索引操作(创建、查看、删除)

    Elasticsearch采用Rest风格API,因此其API就是一次http请求,只要能发起http请求。 settings:表示索引库设置,其中可以定义索引库的各种属性 比如分片数 副本数等,暂时不设置,都走默认。 GET /索引名称 GET /索引名称1,索引名称2,索引名称3,… 信息就比较多了 #! Deprecation: Elasticse

    2023年04月08日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包