网站首页 > 博客文章 正文
Linux Story
纯正开源之美 有趣、有料、有意思
译者:Sunling
GNOME.Asia 2017 峰会优秀志愿者!
什么是 Elasticsearch ?
Elasticsearch 是一个实时搜索和分析引擎。它可以大规模的索引文档,同时允许你能够搜索到它们,并快速地对其进行分析。
Elasticsearch 能够被 Hadoop 集成,在大数据存储和大数据搜索与分析的方面实现协作。在这篇文章中,我将会简要地介绍它的工作原理,然后我会根据最近的一个项目去深入研究一些例子。
Elasticsearch 怎么工作?
Elasticsearch 的核心使用了 Lucene 引擎 。Lucene 是一个用于优化文档存储的 Java 引擎,它可以高效地搜索和检索与搜索项相匹配的文本项。
为什么需要 Elasticsearch 呢? Elasticsearch 为你提供了一个更低层次的 Lucene 引擎和更为简洁的 API ,它更具可扩展性,同时支持插件和其他一系列技术的集成。
首先介绍三个关键概念:
索引( index ):一个索引就是一个拥有相似特征的文档的集合。比如说,你可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引。一个索引由一个名字来 标识(必须全部是小写字母的),并且当我们要对这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字。在一个集群中,你能够创建任意多个索引。
类型( type ):在一个索引中,你可以定义一种或多种类型。一个类型是你的索引的一个逻辑上的分类/分区,其语义完全由你来定。通常,会为具有一组相同字段的文档定义一个类型。比如说,我们假设你运营一个博客平台 并且将你所有的数据存储到一个索引中。在这个索引中,你可以为用户数据定义一个类型,为博客数据定义另一个类型,当然,也可以为评论数据定义另一个类型。
分片( shard ):一个索引可以存储超出单个结点硬件限制的大量数据。比如,一个具有 10 亿文档的索引占据 1TB 的磁盘空间,而任一节点可能没有这样大的磁盘空间来存储或者单个节点处理搜索请求,响应会太慢。为了解决这个问题, Elasticsearch 提供了将索引划分成多片的能力,这些片叫做分片。当你创建一个索引的时候,你可以指定你想要的分片的数量。每个分片本身也是一个功能完善并且独立的“索引”,这个“索引” 可以被放置到集群中的任何节点上。
快速开始
嗯,这些都难不倒你!但你该如何去使用它呢? Elasticsearch 提供了一个非常简洁的 REST API ,你可以将文档写到 Elasticsearch , Elasticsearch 会自动构建索引,最后你可以使用查询语句将这些文档召回。
上面这条命令就直接构建了第一个索引。那么现在就让我们来详细看看各个字段是什么意思是。在主机和端口之后的 URL 中,我们有三个选项。blog 是索引的名称,而 page 则是我们前面讨论的类型( type ),数字 1 代表当前这份文档的 id 。
以下是结果的返回值:
这不仅回复显示了我们上面的执行结果,同时还显示了分片以及副本的情况。
所以,我们的文件现在已经被存储了,我们可以简单地重复这个过程来处理尽可能多的博客文章。
那么我们该如何查询呢?有两种查询 方法。下面分别展示了两种查询方式。
简单查询
复杂查询
Elasticsearch 将返回如下结果。
还有有许多不同的参数和大量可以使用的搜索技术,这些都可以在官方文档中被找到。
Hadoop 集成优势
你有几个文件,然后索引它们,再执行一些搜索。听起来很棒,但在企业中,你不太可能使用这种方法;你更倾向于将 PB 级的数据存储存储在某个弹性存储集群中。
Elasticsearch 通过构建 elasticsearch-hadoop 使得一切变得非常简单。 通过映射 hadoop 分离的输入数据, Spark 的分区到 ES 的分片上解决分布式数据模型问题,这样做能够减少了数据拷贝,提高了性能。 数据能够位于同一台机器上,因为 ES-hadoop 可能会与 Hadoop 和 Spark 进行数据交互,这样防止了不必要的数据通过网络进行传输。
希望本文对 ES( Elasticsearch )的初次尝试者有用,本文向你展示了如何快速构建自己的搜索引擎!只需要你的一点点想象力和一个简易的 Web 前端,你很快就能与谷歌进行竞争了。O(∩_∩)O哈哈~
本文由 LinuxStory 志愿者 Sunling 翻译,更多详情请查看原文。
LinuxStory——有情怀的开源资讯网
www.linuxstory.org
猜你喜欢
- 2024-09-08 全文搜索引擎Elasticsearch的基本概念和操作
- 2024-09-08 搜索引擎的 ORM 库 bboss-elasticsearch
- 2024-09-08 IT博物馆之Elasticsearch搜索引擎
- 2024-09-08 elasticsearch在数据量很大的情况下(数十亿)如何提高查询效率
- 2024-09-08 硬核!逛了5年的Github一口气把我收藏的JAVA开源项目分享给你
- 2024-09-08 Elasticsearch构建全文搜索系统(elasticsearch全文检索原理)
- 2024-09-08 企业级搜索平台springboot-elasticsearch
- 2024-09-08 ES 搜索引擎的分片数、副本数分配算法
- 2024-09-08 Java 程序员如何通过 ElasticSearch 构建极致的搜索体验?
- 2024-09-08 轻量级搜索引擎,使用简单,搜索速度快,是真的快。#java
你 发表评论:
欢迎- 07-07Xiaomi Enters SUV Market with YU7 Launch, Targeting Tesla with Bold Pricing and High-Tech Features
- 07-07Black Sesame Maps Expansion Into Robotics With New Edge AI Strategy
- 07-07Wuhan's 'Black Tech' Powers China's Cross-Border Push with Niche Electronics and Scientific Firepower
- 07-07Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!
- 07-07IT运维必会的30个工具(it运维工具软件)
- 07-07开源项目有你需要的吗?(开源项目什么意思)
- 07-07自动化测试早就跑起来了,为什么测试管理还像在走路?
- 07-07Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
- 最近发表
-
- Xiaomi Enters SUV Market with YU7 Launch, Targeting Tesla with Bold Pricing and High-Tech Features
- Black Sesame Maps Expansion Into Robotics With New Edge AI Strategy
- Wuhan's 'Black Tech' Powers China's Cross-Border Push with Niche Electronics and Scientific Firepower
- Maven 干货 全篇共:28232 字。预计阅读时间:110 分钟。建议收藏!
- IT运维必会的30个工具(it运维工具软件)
- 开源项目有你需要的吗?(开源项目什么意思)
- 自动化测试早就跑起来了,为什么测试管理还像在走路?
- Cursor 最强竞争对手来了,专治复杂大项目,免费一个月
- Cursor 太贵?这套「Cline+OpenRouter+Deepseek+Trae」组合拳更香
- 为什么没人真的用好RAG,坑都在哪里? 谈谈RAG技术架构的演进方向
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)