热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RESTFulAPI三大优势

在学习Elasticsearch的过程中,你是不是多多少少有以下困惑: 面对Elasticsearch1.X、2.X、5.X、6.X的不同版本,你无从下手?面对ElasticSta

在学习 Elasticsearch 的过程中,你是不是多多少少有以下困惑:

 

面对 Elasticsearch1.X、2.X、5.X、6.X 的不同版本,你无从下手?

面对 ElasticStack(Elasticsearch、Logstash、Kibana、Beat),你不知道从何学起?

面对各种技术文档(官方的及非官方的),你是否感到非常困惑?

面对 Elasticsearch 出现的各种异常、Bug,好不容易找到一个技术群或提问,又没人解答?

市面上的书籍分两种:老外的原理透彻,但版本过时;国内的版本稍新、但不透彻,你是不是很迷茫……

本文:

 

不谈搜索引擎的原理;

不谈倒排索引的原理;

不谈乐观锁、悲观锁的机制;

……

只谈:

 

从产品开发、项目实战的角度,如何让一个 Java 程序员甚至 C/C++ 的程序员快速上手。

海量的版本中,告诉你明确的选择。

ELKStack 技术体系,你的学习优先级。

ELK 技术体系架构。

ELK 技术栈的应用场景。

有了传统关系型数据库(MySQL、Oracle)、非关系型数据库(Mongo),如何快速的导入 Elasticsearch,实现全文检索。

Elasticsearch 实战中遇到问题,如何高效解决。

Elasticsearch 集群部署。

Elasticsearch 集群调优清单。

Elasticsearch 高效进阶方法论。

……

横扫你学习 Elasticsearch 的诸多疑惑,让你少走半年弯路!

 

ELK Stack 认知

考虑到有初学的朋友,先对 ELK Stack 的认知咱们达成共识。

 

ELK Stack 由最早期的最核心的 Elasticsearch(以下部分简称 ES),集合 Logstash、Kibana、beats 等发展而来,形成 ELK Stack 体系。如下图所示。

 

enter image description here

 

Elasticsearch 认知

Elasticsearch 为开源的、分布式、基于 Restful API、支持 PB 甚至更高数量级的搜索引擎工具。

 

相对于 MySQL,给出如下的对应关系表会更好理解。

 

enter image description here

 

从上表中可以看出:

 

MySQL 中的数据库(DataBase),等价于 ES 中的索引(Index)。

MySQL 中一个数据库下面有 N 张表(Table),等价于 1 个索引 Index 下面有 N 多类型(Type)。

MySQL 中一个数据库表(Table)下的数据由多行(Row)多列(column,属性)组成,等价于 1 个 Type 由多个文档(Document)和多 Field 组成。

MySQL 中定义表结构、设定字段类型等价于 ES 中的 Mapping。举例说明,在一个关系型数据库里面,Schema 定义了表、每个表的字段,还有表和字段之间的关系。与之对应的,在 ES 中,Mapping 定义索引下的 Type 的字段处理规则,即索引如何建立、索引类型、是否保存原始索引 JSON 文档、是否压缩原始 JSON 文档、是否需要分词处理、如何进行分词处理等。

MySQL 中的增 insert、删 delete、改 update、查 search 操作等价于 ES 中的增 PUT/POST、删 Delete、改 _update、查 GET。其中的修改指定条件的更新 update 等价于 ES 中的 update_by_query,指定条件的删除等价于 ES 中的 delete_by_query。

MySQL 中的 group by、avg、sum 等函数类似于 ES 中的 Aggregations 的部分特性。

MySQL 中的去重 distinct 类似 ES 中的 cardinality 操作。

MySQL 中的数据迁移等价于 ES 中的 reindex 操作。

以上,通过类比,能加快理解 Elasticsearch 的速度。

 

如下是传统的关系型数据库(如 Oracle、MySQL)、非关系型的数据库(如 Mongo)所做不到的:

 

1.传统的关系型数据库虽然能支持类型“like %待检索词%”模糊语句匹配,但无法进行全文检索(分词检索)。



推荐阅读
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 探讨低代码行业发展现状,分析其未能催生大型企业的原因,包括市场需求、技术局限及商业模型等方面。 ... [详细]
  • 初探Hadoop:第一章概览
    本文深入探讨了《Hadoop》第一章的内容,重点介绍了Hadoop的基本概念及其如何解决大数据处理中的关键挑战。 ... [详细]
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • 本文提供了一个详尽的前端开发资源列表,涵盖了从基础入门到高级应用的各个方面,包括HTML5、CSS3、JavaScript框架及库、移动开发、API接口、工具与插件等。 ... [详细]
  • 本文详细介绍了 Node.js 中 OS 模块的 arch 方法,包括其功能、语法、参数以及返回值,并提供了具体的使用示例。 ... [详细]
  • 服务器虚拟化存储设计,完美规划储存与资源,部署高性能虚拟化桌面
    规划部署虚拟桌面环境前,必须先估算目前所使用实体桌面环境的工作负载与IOPS性能,并慎选储存设备。唯有谨慎估算贴近实际的IOPS性能,才能 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 在Qt框架中,信号与槽机制是一种独特的组件间通信方式。本文探讨了这一机制相较于传统的C风格回调函数所具有的优势,并分析了其潜在的不足之处。 ... [详细]
  • 在Effective Java第三版中,建议在方法返回类型中优先考虑使用Collection而非Stream,以提高代码的灵活性和兼容性。 ... [详细]
author-avatar
无棱9931
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有