ElasticSearch学习

什么是ElasticSearch?

  • 专注于搜索的非关系型数据库

  • 根据用户的搜索关键字,然后特定的算法,从互联网检索指定的信息反馈

搜索引擎框架

Lucence

  1. 开发语言是Java

  1. 提供了完整的索引和搜索引擎

  1. 不支持实时搜索,从创建索引到可以搜索的中间需要一定的时间

  1. Lucence是一个框架,需要跟Java集成,熟练运用Lucence非常复杂

Apache Solr

  1. 开发语言是Java,是Apache基于Lucence开发的一个全文搜索的服务

  1. 支持通过HTTP利用XML加载到一个搜索集合中

  1. 缺点建立索引时搜索效率下降,实时索引搜索效率不高

Elasticsearch

  1. 分布式,基于Lucence构建的RESTful搜索引擎

  1. 支持通过HTTP使用JSON 进行数据检索

  1. 能够对大容量的数据进行实时维护

Elasticsearch和Solr

  • 在Solr之前提出了实时搜索(Near Real Time Search)

  • 如果使用的是JSON那么Elasticsearch是很好的选择,Solr使用的是schema.xml和solrconfig.xml都有很好的文档记录

  • Solr用于文本搜索,Elasticsearch用于分词和过滤,而不一定是文本搜索

  • 两者都是功能丰富的搜索引擎,Elasticsearch使用更简单,Solr上手需要更多的工作和知识

我们需要的数据在数据库中都有,为什么还要使用搜索引擎?

  1. 搜索引擎可以更好搜索非结构化的文本

  1. 索引维护的方面,一般我们不会用数据库存文本字段,新增和修改都需要重新构建索引非常的麻烦

  1. 当搜索数量变大的时候,适合使用搜索引擎

  1. 需要灵活的全文搜索

Elasticsearch结构

  • 数据库 - 索引(index)

  • 表 - 类型(type)

  • 数据行 - 文档(document)

  • 数据列 - 字段(field)

约定 : 一个索引只能有一个类型,并且类型名固定为(_doc)

倒排索引

  1. 将数据添加到es中,就开始执行

  1. 对数据类型为text的字段进行分词,得到词根

  1. 将词根存到倒排索引表中,并与文档映射起来通过ID

  1. 用户搜索关键字,es对这些关键字从倒排索引里进行匹配

  1. 匹配成功获取文档ID集合,然后根据文档ID去查询内容并返回

<think> 首先,用户的问题是“ES学习”,这是一个非常模糊的提示。我需要理解“ES”指的是什么。根据常见上下文,“ES”可能代表“Elasticsearch”,一个流行的搜索和分析引擎。它也可能代表其他东西,比如“Elastic Stack”或“ES”作为某个领域的缩写。但考虑到技术上下文,Elasticsearch 是最可能的含义。 用户说:“ES学习”,意思是“学习ES”,所以我应该提供一个关于学习Elasticsearch的简短介绍或关键点。 我的回答需要: 1. 使用中文回答问题。 2. 在回答完问题后,必须根据用户的问题及我的回答提出3-5个相关问题。 3. 相关问题必须以“§§相关问题§§”开头,并且输出在回答的末尾。 4. 第一行必须完整输出“§§相关问题§§”,然后列出相关问题。 5. 禁止换行分散,意思是相关问题部分不能有换行或其他分散内容;应该紧凑输出。 格式示例: - 先回答问题。 - 然后输出“§§相关问题§§”。 - 接着列出1. 2. 3. 等问题。 所以,结构是: - 回答部分。 - 然后是“§§相关问题§§”。 - 最后是相关问题列表。 现在,构建回答: - 问题:ES学习学习Elasticsearch)。 - 回答:简要介绍Elasticsearch是什么、核心概念、如何开始学习等。 - Elasticsearch是一个基于Lucene的分布式搜索和分析引擎。 - 它用于实时搜索、日志分析等。 - 关键概念:索引、类型、文档、查询等。 - 学习资源:官方文档、教程等。 目标是简洁,因为用户的问题很简短。 然后,基于回答提出3-5个相关问题: - 相关问题应该与用户的问题和我的回答相关。 - 例如: 1. Elasticsearch的基本组件有哪些? 2. 如何安装和配置Elasticsearch? 3. 什么是倒排索引? 4. 如何执行一个简单的查询? 5. Elasticsearch与Kibana如何整合? 确保有3-5个。 最后,输出: - 回答结束。 - §§相关问题§§ - 1. ... - 2. ... - 3. ... 现在,写回答: - 开头:解释ES是Elasticsearch的缩写。 - 然后给出关键学习点。 - 结束回答。 - 输出相关问题部分。 完整响应: [回答部分] §§相关问题§§ 1. ... 2. ... 3. ... </think>ES(通常指Elasticsearch)是一个开源的分布式搜索和分析引擎,基于Apache Lucene构建,用于实时处理大规模数据。学习ES的关键点包括: - **核心概念**:理解索引(Index)、文档(Document)、分片(Shard)和类型(Type,在较新版本中已弃用)。 - **基本操作**:学习如何通过RESTful API进行数据索引、搜索和聚合。 - **安装与配置**:从官方文档开始,下载并运行Elasticsearch实例,熟悉配置文件(如elasticsearch.yml)。 - **工具整合**:结合Kibana进行可视化,或使用Logstash导入数据。 - **学习资源**:推荐Elastic官方文档、在线教程(如Elasticsearch: The Definitive Guide)和社区论坛。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值