ES 简介 | 学习笔记

简介: 快速学习 ES 简介

开发者学堂课程【ElasticSearch 入门精讲ES 简介学习笔记,与课程紧密连接,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/631/detail/9937


ES简介


内容简介

一、ES 的适用场景概述

二、ES 适用场景详解

三、众多工具适配 ES


一、ES 的适用场景概述

1.站内搜索∶

主要和 Sol 竞争,属于后起之秀。

2.NoSQLJson 文档数据库∶

主要抢占 Mongo 的市场,它在读写性能上优于 Mongo,同时也支持地理位置查询,还方便地理位置和文本混合查询。

3.监控∶

统平日志类时间序的数据存储和分析、可视化,这方面是引领者。

4.国外∶

Wikipedia(维基百科)使用ES提供全文搜索并高亮关键字、

StackOverflow(IT 问答网站)结合全文搜索与地理位置查询、Github

使用 Elasticsearch 检索1300亿 Z 行的代码。

5.国内∶

百度(在云分析、网盟、预测、文库、钱包、风控等业务上都应用了 ES,单集群每天导入30TB+数据,总共每天60TB+)、新浪、阿里巴巴、腾讯等公司均有对 ES 的使用。

6.使用比较广泛的平台 ELK(ElasticSearch,Logstash,Kibana)。


二、ES 适用场景详解

了解了 ES 的使用场景,ES 的研究、使用、推广才更有价值和意义。

场景一∶使用 Elasticsearch 作为主要的后端传统项目中,搜索引擎是部署在成熟的数据存储的顶部,以提供快速且相关的搜索能力。这是因为早期的搜索引擎不能提供耐用的存储或其他经常需要的功能,如统计。

场景二∶在现有系统中增加 elasticsearch

由于 ES 不能提供存储的所有功能,一些场景下需要在现有系统数据存储的基础上新增 ES 支持。假设你的在线零售商店的产品信息存储在 SQL 数据库中。为了快速且相关的搜索,你安装 Elasticsearch。为了索引数据,您需要部署一个同步机制,该同步机制可以是 Elasticsearch 插件或你建立一个自定义的服务。

此同步机制可以将对应于每个产品的所有数据和索引都存储在 Elasticsearch,每个产品作为一个 document 存储(这里的 document相当于关系型数据库中的一行/row 数据)。

当在该网页上的搜索条件中输入"用户的类型"。店面网络应用程序通过 Elasticsearch 查询该信息。

Elasticsearch 返回符合标准佳的产品 documents。并根据你喜欢的方式来分类文档。排序可以根据每个产品的被搜索次数所得到的相关分数,或任何存储在产品 document 信息,例如∶最新最近加入的产品、平均得分,或者是那些插入或更新信息。所以你可以只使用 Elasticsearch 处理搜索。这取决于同步机制来保持 Elasticsearch 获取最新变化。

场景三∶使用 elasticsearch 和现有的工具在一些使用情况下,您不必写一行代码就能通过 elasticssearch 完成一项工作。很多工具都可以与 Elasticsearch 一起工作,所以你不必到你从头开始编写。例如,假设要部署一个大规模的日志框架存储,搜索,并分析了大量的事件。处理日志和输出到 Elasticsearch,您可以使用日志记录工具,如rsyslog(www.rsyslog.com)Logstash(www.elastic.co/products/logstash),或ApacheFlume

(http∶/flume.apache.org)。搜索和可视化界面分析这些日志,你可以使用

Kibana(www.elastic.co/产品/kibana)。

举例1:ES 不支持事务、复杂的关系(至少1.X 版本不支持,2.X 有改善,但支持的仍然不好),如果你的系统中需要上述特征的支持,需要考虑在原有架构.原有存储的基础上的新增 ES 的支持。

举例2:如果你已经有个在运行的复杂的系统,你的需求之一是在现有系统中添加检索服务。—种非常雪险的方式是重构系统以支持 ES。而相对安全的方式是∶将 ES 作为新的组件添加到现有系统中。如果你使用了如下图所示的 SQL 数据库和 ES 存储,你需要找到一种方式使得两种存储之间实时同步。需要根据数据的组成、数据库选择对应的同步插件。可供选择的插件包括∶mysql、oracle 选择 logstash-input-jdbc 插件。2)mongo 选择 mongo-connector 工具。


三、众多工具适配 ES

为什么那么多工具适配 Elasticsearch?

主要原因如下∶

1)Elasticsearch 是开源的。

2)Elasticsearch 提供了 JAVAAPI 接口。

3)Elasticsearch 提供了 RESTfulAPI 接口(不管程序用什么语言开发,任何程序都可以访问)

4)更重要的是,REST 请求和应答是典型的 JSON(JavaScript 对象符号)格式。通常情况下,一个 REST 请求包含一个 JSON 文件,其回复也都是一个 JSON 文件。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
供应链 安全 物联网
区块链去中心化交易所源码|去中心化交易系统开发
随着区块链技术的发展,应用的扩展,区块链软件开√发也随之应用到物联网、供应链管理等领域,其中包含区块链交Y所系统,区块链去中心化交Y所,依托于区块链技术,具有去中心化、匿名性、信息不可纂改等特点
|
监控 Java 关系型数据库
『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程
『Jmeter超级干货』| Linux下Jmeter安装配置、脚本设计执行、监控及报告完整过程
3899 1
|
算法 索引
让星星⭐月亮告诉你,HashMap的resize()即扩容方法源码解读(已重新完善,如有不足之处,欢迎指正~)
`HashMap`的`resize()`方法主要用于数组扩容,包括初始化或加倍数组容量。该方法首先计算新的数组容量和扩容阈值,然后创建新数组。接着,旧数组中的数据根据`(e.hash & oldCap)`是否等于0被重新分配到新数组中,分为低位区和高位区两个链表,确保数据迁移时的正确性和高效性。
290 3
|
人工智能 API C#
SimpleRAG:基于WPF与Semantic Kernel实现的一个简单的RAG应用
SimpleRAG是一款基于WPF与Semantic Kernel的RAG应用,支持OpenAI兼容的AI聊天与文本嵌入模型,演示了RAG技术在提升回答质量上的作用。可通过GitHub获取源码,配置所需模型API密钥后,在VS2022中以.NET 8环境编译运行。应用内置Sqlite数据库存储向量数据,便于离线使用与自定义扩展。如感兴趣,请支持并反馈使用体验。
243 1
SimpleRAG:基于WPF与Semantic Kernel实现的一个简单的RAG应用
|
存储 SQL HIVE
数据仓库的Hive的数据类型的复杂数据类型的map
在数据仓库领域,Hive是一个常用的工具。它提供了一种简单的方式来查询和分析大量数据。
414 0
|
NoSQL MongoDB
搭建MongoDB分片式集群
搭建MongoDB分片式集群
304 0
|
安全 网络安全 Windows
Windows系统防火墙放行ICMP
Windows系统防火墙放行ICMP
Windows系统防火墙放行ICMP
|
C++ Windows
Visual Studio老版本安装
Visual Studio老版本安装
Visual Studio老版本安装
|
Java BI 数据库
WEB课设之学生成绩管理系统
WEB课设之学生成绩管理系统
626 0
WEB课设之学生成绩管理系统
|
机器学习/深度学习 人工智能 并行计算
无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型
无缝支持Hugging Face社区,Colossal-AI低成本轻松加速大模型
729 0