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

大佬就别点进来了,不过是ES入门概念罢了

简简单单介绍几个ElasticS

什么是全文搜索引擎


全文搜索引擎是目前广泛应用的主流搜索引擎。


它的工作原理是计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。


这个过程类似于通过字典中的检索字表查字的过程。



什么时候使用全文搜索引擎


  • 搜索的数据对象是大量的非结构化文本数据

  • 文件记录量达到数十万或者百万甚至更多

  • 支持大量基于交互式文本的查询

  • 对不同记录类型、非文本数据操作或安全事务处理的需求相对较少的情况



为什么使用ES


ES(ElasticSearch) 作为一个开源的高扩展的分布式全文检索引擎,自2016年起已经超过Solr,成为排名第一的搜索引擎应用,具有很多独特的优点。


  • ES可以为几乎所有类型的数据提供近实时的索引、搜索和分析服务。无论是结构化或非结构化数据文本、数值数据和地理空间数据,ES都支持高效地存储和索引,并提供高效搜索。

  • ES扩展性好。它可以扩展到上百台服务器,处理PB级别的数据,同时索引的副本机制保障了高可用的特点。

  • ES使用简单。它通过简单的 RESTful API 隐藏了 Lucene 的复杂性,从而让全文搜索变得简单易用。


例如,要计算出2.38亿会员中有多少80后的已婚的上海男士。
传统数据库执行时间:5个小时左右
ES执行时间:1分钟



ES vs Solr


ES 和 Solr 都是基于 Lucene 的全文搜索引擎,他们的特征差异对比如下:




ElasticSearch 应用


  1. Github:2013年初,抛弃了Solr,采取 ElasticSearch 来做PB 级的搜索。“GitHub 使用ElasticSearch搜索20TB 的数据,包括13亿文件和1300亿行代码”。

  2. 维基百科:启动以ElasticSearch为基础的核心搜索架构

  3. SoundCloud:“SoundCloud 使用ElasticSearch 为1.8亿用户提供准时而精准的音乐搜索服务。

  4. 百度:目前广泛使用ElasticSearch作为文本数据分析,采集百度所有服务器上的各类指标数据及用户自定义数据,通过对各种数据进行多维分析展示,辅助定位分析实例异常或业务层面异常。目前覆盖百度内部20多个业务线(包括云分析、网盟、预测、文库、直达号、钱包、风控等),单集群最大100台机器,200个ES节点,每天导入30TB+数据。

  5. 新浪:使用ElasticSearch 分析处理32亿条实时日志。

  6. 阿里:使用ElasticSearch 构建日志采集和分析体系。

  7. Stack Overflow:解决Bug 问题的网站,全英文,编程人员交流的网站。



ES基本术语


结构化数据


也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。


对于结构化数据,因为它们具有特定的结构,所以我们一般都是可以通过关系型数据库(MySQL、Oracle等)的二维表(Table)的方式存储和搜索,也可以建立索引。



非结构化数据


又可称为全文数据,不定长或无固定格式,不适于由数据库二维表来表现,包括所有格式的办公文档、Word文档、邮件、音视频信息等。


对于非结构化数据,主要有两种搜索方式:顺序扫描和全文检索。


顺序扫描


按照顺序扫描的方式查特定的关键字。


全文检索


将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,进而达到搜索相对较快的目的。


这种方式就构成了全文检索的基本思路。这部分从非结构化数据中提取出的重新组织的信息,我们称之为索引。


这种检索方式主要工作量在前期索引的创建。


近实时


ElasticSearch是近实时的查询。通常情况下,从索引文档到可搜索延迟在1s,可配置。






集群

cluster

一个集群由一个或多个 节点组成


ES的分布式架构中,不同集群是通过不同名字前来区分的,默认名字为"elasticsearch",可以在配置文件中修改。

节点

node

节点是属于集群的 运行实例


在启动时,节点将使用 单播 来发现具有相同集群名称的现有集群,并将尝试加入该集群。


一个节点只能加入一个集群。

索引

Index

索引是相似文档结构的集合。

Shard

分片

日常场景中,索引存储的数据可能超过单个节点的硬件限制,或者从单个节点搜索请求太慢。为了解决这个问题,ES提供将索引分成多个分片的功能。


一个ElasticSearch的Shard本质上是一个Lucene Index。

Primary 

Shard

主分片

主分片主要用以解决 水平扩展 问题,通过主分片,就可以将数据分布到集群上的所有节点,一个主分片就是一个运行的Lucene实例。


主分片数在索引创建时指定,后续不允许修改,除非使用Reindex进行修改。

Replica 

Shard

副分片

副本分片用以解决 数据高可用 的问题,也就是说集群中有节点出现硬件故障的时候,通过副本的方式,可以保障数据不会产生真正的丢失,因为副本分片是主分片的拷贝。


同时副本也会提高查询性能,增大吞吐量,搜索可以并行在所有副本上执行。


在索引中副本分片数量可动态调整,通过增加副本数,可以在一定程度上提高服务查询的性能。

映射

Mapping

映射用于定义ES对索引中字段的存储类型、分词方式等信息,类似数据库中的Schema。

文档

Document

ES是面向文档的,文档是所有可搜索数据的最小单位。


文档可以理解为关系型数据库中的一条记录。在ES中文档会被序列化成JSON格式,每一个文档有一个Unique ID,可以自己指定ID或者由ES自动生成。

主键

Id

每个文档都会有不同的Id,没有指定的话,会自动生成

字段

Field

一个 document 包含字段或键值对的列表。字段类似于关系数据库中表中的列。


关系型数据库 类比 ElasticSearch


RDBMS

ElasticSearch

Table

Index

Row

Document

Column

Field

Schema

Mapping

SQL

DSL

SELECT * FROM table…

GET http://…

UPDATE table SET…

PUT http://…




推荐阅读
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 企业数据应用挑战及元数据管理的重要性
    本文主要介绍了企业在日常经营管理过程中面临的数据应用挑战,包括数据找不到、数据读不懂、数据不可信等问题。针对这些挑战,通过元数据管理可以实现数据的可见、可懂、可用,帮助业务快速获取所需数据。文章提出了“灵魂”三问——元数据是什么、有什么用、又该怎么管,强调了元数据管理在企业数据治理中的基础和前提作用。 ... [详细]
  • 本文总结了淘淘商城项目的功能和架构,并介绍了传统架构中遇到的session共享问题及解决方法。淘淘商城是一个综合性的B2C平台,类似京东商城、天猫商城,会员可以在商城浏览商品、下订单,管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。商城的架构包括后台管理系统、前台系统、会员系统、订单系统、搜索系统和单点登录系统。在传统架构中,可以采用tomcat集群解决并发量高的问题,但由于session共享的限制,集群数量有限。本文探讨了如何解决session共享的问题。 ... [详细]
author-avatar
紫藤雨2502915477
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有