首页 > 其他分享 >ElasticSearch快速入门

ElasticSearch快速入门

时间:2024-10-10 17:46:31浏览次数:10  
标签:index 入门 Elasticsearch my 索引 文档 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” 的索引的信息,包括设置、映射、统计信息等

示例:

标签:index,入门,Elasticsearch,my,索引,文档,ElasticSearch,搜索,快速
From: https://blog.csdn.net/qq_62097431/article/details/142701764

相关文章

  • 信我!全网最详细shell,带你快速入门,看一遍包你会!!!
    前言1.shell的简介Shell是一个应用程序,它连接了用户和Linux内核,让用户能够更加高效、安全、低成本地使用Linux内核,这就是Shell的本质。然而Shell本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序,但是Shell也有着它的特殊性,就是开机立马启动,并呈现在......
  • CTF中Web题目的常见题型及解题姿势,零基础入门到精通,收藏这篇就够了
    一、基础知识类题目考察基本的查看网页源代码、HTTP请求、修改页面元素等。这些题很简单,比较难的比赛应该不会单独出,就算有应该也是Web的签到题。实际做题的时候基本都是和其他更复杂的知识结合起来出现。姿势:恶补基础知识就行查看网页源代码按F12就都看到了,flag一般......
  • 快速排序的非递归实现:借助栈实现、借助队列实现
    目录用栈实现快速排序1.用栈实现非递归快速排序的思路步骤1.1.思路步骤2.用栈实现非递归快速排序的代码3.用栈实现非递归快速排序的整个工程3.1.QuickSortNonR.h3.2.QuickSortNonR.c3.3.Stack.h3.4.Stack.c用队列实现非递归快速排序1.用队列实现非递归快速排序的思......
  • AI 提示词(Prompt)入门 一:ChatGPT 3.5 特性及使用
    这一章节,今天主要讲ChatGPT3.5的使用,包含如下几点:1:ChatGPT的基本界面2:ChatGPT的简单使用3:ChatGPT的特殊使用技巧4:ChatGPT一些简单的使用1、ChatGPT的基本界面2、ChatGPT的简单使用3、ChatGPT的特殊使用技巧4、ChatGPT一些简单的使用你可以尝试用各......
  • C#基础知识总结-快速掌握看这一篇就够了
    C#基础知识总结-快速掌握看这一篇就够了目录一、类库:图书馆,命名空间:书架,类:书籍,方法:目录1、类库的引用2、初识类与名称空间3、依赖关系4、类与对象的关系......
  • 1.入门与顺序结构
    第一题:学习了输出语句,请参照例题,编写一个程序,输出以下信息:**************************HelloWorld!**************************注意:Hello与World之间有一个空格以及大小写问题*也是输出的一部分,别光打印HelloWorld!输入格式:无需输入输出格式:*************************......
  • python从0快速上手(二)IDE选择
    在这个代码横飞的世界里,选择一个合适的PythonIDE就好比是选择一把顺手的武器。今天,就让我来带你一探究竟,看看市面上有哪些让人眼花缭乱的PythonIDE,并一较高下。1.PyCharmPyCharm,由大名鼎鼎的JetBrains出品,是Python开发者中的宠儿。它以其强大的代码分析和智能提示功能......
  • HarmonyOS NEXT 开发之ArkTS基础入门
    ArkTS是HarmonyOSNEXT的开发语言,它基于TypeScript并进行了扩展和优化。以下是一些基础语法知识点、示例用法及注意事项。一、ArkTS简介ArkTS是一种基于TypeScript的编程语言,主要用于HarmonyOS应用的UI界面和业务逻辑开发。它在TypeScript的基础上,进行了一些针对......
  • 宝塔面板无法访问,常见原因及如何快速解决?
    宝塔面板无法访问可能由多种原因导致,以下是一些常见的原因及其快速解决方法:服务器连接问题:检查服务器是否正常运行,确认服务器没有宕机。检查服务器的网络连接状态,确保服务器能够正常上网或被外部网络访问。域名解析问题:如果您是通过域名访问宝塔面板,请检查域名解析设......
  • 【Redis入门到精通十】Redis哨兵
    目录哨兵(Sentinel)1.哨兵的由来2.哨兵的基本概念3.基于docker安装配置Redis哨兵4.哨兵选取主节点的原理1.主观下线2.客观下线3.选举出哨兵的leader4.leader挑选出合适的slave成为新的master哨兵(Sentinel)    RedisSentinel是Redis的高可用实现方案,在......