当前位置: 首页 > article >正文

Elasticsearch(一)

一:简介

The Elastic Stack, 包括 Elasticsearch、 Kibana(展示数据的项目)、 Beats 和 Logstash(这两个是采集和传输数据的项目)

这些项目组合形成的技术栈称为ELK Stack,能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。

Elaticsearch,简称为 ES,是整个 ElasticStack 技术栈的核心, ES 是一个开源的高扩展的分布式全文搜索引擎

它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。

二:数据的类型:

ES是处理数据的,根据数据的格式可以将数据分为三大类:

1:结构化数据:

用特定的结构来组织和管理数据,一般表现为二维的表结构

可以保存到关系型数据库:mysql,oracle;可以通过sql语句来进行查询,为了提高效率还可以采用索引的方式来优化查询,优点是方便管理、方便查询,缺点:扩展结构复杂

2:非结构化数据:

无法用二维表结构来表现的数据,如:服务器日志、报表、视频、图片等,这些数据维度广数据量大,数据的存储和查询的成本大,这些数据一般保存到nosql数据库中:mongodb、redis、hbase等

3:半结构化数据:

数据的结构和内容混在一起,没有明显的区分,如:xml,html,这种数据一般也是保存到mangodb、redis、hbase;缺点是查询不易

三:为什么使用ES

在很多场景下,我们搜索的对象很多不是关系型、结构化数据,无法像数据库模糊查询那样模糊匹配,在大数据的环境下更不可能遍历所有数据做匹配,如网站搜索,它们都是根据网页中的关键字生成索引,我们在搜索的时候输入关键字,它们会将该关键字即索引匹配到的所有网页返回;还有常见的项目中应用日志的搜索等等。对于这些非结构化的数据文本,关系型数据库搜索不是能很好的支持

一般传统数据库,全文检索都实现的很鸡肋,因为一般也没人用数据库存文本字段。进行全文检索需要扫描整个表,如果数据量大的话即使对 SQL 的语法优化,也收效甚微。建立了索引,但是维护起来也很麻烦,对于 insert 和 update 操作都会重新构建索引。

ES就解决了这样的问题

四:Elasticsearch和Solr

这两个搜索引擎软件都是基于Lucene(Apache的项目:JAVA信息检索程序库)开发的

选型:

  • 如果除了搜索文本之外还需要它来处理分析查询(如统计),ES是更好的选择

  • 对于需要良好可伸缩性和性能的分布式环境,es更适合,它可扩展性和性能更好


http://www.kler.cn/a/153670.html

相关文章:

  • C++学习寄录(九.多态)
  • Python学习路线 - Python语言基础入门 - 准备工作
  • 剑指 Offer(第2版)面试题 12:矩阵中的路径
  • 职场轶事:哭笑不得的领导与同事
  • 8.ROS的TF坐标变换(二):动态坐标变换、多坐标变换代码讲解(以LIO-SAM为例)
  • CSS新手入门笔记整理:CSS文本样式
  • STM32 定时器TIM
  • json.decoder.JSONDecodeError: Extra data: line 1 column 332 (char 331)
  • Leetcode—1094.拼车【中等】
  • C语言——I /深入理解指针(二)
  • 数字图像处理(实践篇) 十六 基于分水岭算法的图像分割
  • flutter-一个可以输入的数字增减器
  • php获取过去一段的时间范围
  • 【CTA认证】Android8实现android6以下的应用运行时也要申请权限
  • InsCode实践分享
  • 《LeetCode力扣练习》代码随想录——哈希表(赎金信---Java)
  • complex rsa
  • PMIC : 一颗芯片解决N多问题
  • 【C++】string类模拟实现过程中值得注意的点
  • LeetCode | 965. 单值二叉树