ElasticSearch介绍

  1. 什么是搜索?

  2. 如果使用数据库做搜索会怎样?

  3. 什么是全文检索和Lucene

  4. 什么是ElasticSearch?

1. 什么是搜索?

百度、google上查询任何需要的内容信息。这种是通用的搜索。但是百度只是一个通用的搜索引擎,并不等于搜索。

垂直搜索(站内搜索): 在指定领域或内容区域搜索内容,

互联网的搜索:

​ 比如淘宝,拉钩,今日头条等。

IT系统的搜索:

​ OA软件,办公自动化软件,会议管理,日程管理,项目管理等。

搜索:就是在任何场景下,找寻你想要的信息,这个时候,会输入一段你想要的关键字,然后就期望找到这个关键字相关的信息。

2. 如果使用数据库做搜索会怎样?

关系型数据库: RDBS

select * from a where product_name LIKE "%关键字%"

上面,如果没有做索引的话,就会每条记录都会去查询匹配。

建了索引的,可以提高查询的效率,随着数据的增加的,时间也会增加。

另外一个问题,如果关键词是严格匹配的。不能将搜索词拆分开来。尽可能去搜索更多的符合预期的结果。

缓存型数据库: NOSQL

3. 全文检索和Lunence

倒排索引:

词条,索引

全文检索:

倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。

倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。

(2)Lucene,就是一个jar包,里面封装好的各种倒排索引,以及进行搜索的代码,包括各种算法。我们就用java开发的时候,引入lucene jar,然后基于lucene进行开发就可以了。用lucene,我们就可以将已有的数据建立缩影,lucene会在本地磁盘上面,给我们组织缩影的数据结构,另外的话,我们也可以用lucene提供的功能和api来针对磁盘上额。

Lucene是封装了搜索引擎大的功能。

4.什么是ElasticSearch?

数据量很大的,多台服务器上存放数据,

  1. 数据的搜索

  2. 高可用

数据量很大的时候,超过单台机器的承受的能力。必须用多台的机器的搜索和管理。

1.数据丢失

如何高性能的建立索引,以及执行搜索

特点:

1.自动维护数据的分布到多个节点的索引的建立,还有搜索请求分布到多个节点的执行。

2.自动维护数据的冗余副本,保证说,一些机器的宕机了,不会丢失任何数据。

3.封装了更多的高级功能,以给我们提供更多高级的支持,让我们快速的开发应用,开发更加复杂的应用。

ElasticSearch介绍

  1. ES功能

  2. 使用场景

  3. 特点

1. ES的功能

  1. 分布式的搜索引擎和数据分析引擎

    搜索,百度,网站的站内搜索,IT系统检索,数据分析 分布式、搜索、数据分析

  2. 全文检索、结构化检索、数据分析

    全文检索: 查询所有商品的包含mac的商品 select * from products where product_name like "%mac%"

    结构化搜索

    部分匹配、自动完成、搜索纠错、搜索推荐

    数据分析:数据统计、聚合等

  3. 对海量数据进行近实时的处理

    分布式:ES自动可以将海量数据分散到多台服务器上去存储和检索。

    海量数据的处理,分布式以后,就可以采用大量的服务器去存储和检索数据,自然而然可以实现海量数据的处理。

    近实时:检索一个数据 (离线数据批处理 batch-processing)

2. ES的适用场景

  • 维基百科

  • The Guardian、新闻

  • Stack Overflow

  • Github

  • 电商网站、检索商品

  • 日志数据分析、logstash采集日志、ES进行复杂的数据分析(ELK)

  • 商品价格监控网站、用户设定价格阈值

  • BI系统、商业智能、ES执行数据分析和挖掘

3. ES特点

  1. 可以作为一个大型的分布式集群(数百台服务器)技术,处理PB级数据,服务大公司,可以运行在单机上,服务小公司。

  2. ES不是什么新技术,主要是将全文检索、数据分析以及分布式技术合并在一起,才形成了独一无二的ES.lucene(全文检索)、商用的数据分析软件、分布式数据库 (mycat)

  3. 对用户而言,是开箱即用,非常简单,作为中小型的应用,直接3分钟部署ES,就可以作为生产环境的系统使用,数据量不大,操作不是很复杂。

  4. 数据库的功能面对很多领域是不够用的(事务,还有各种联机事务的操作):特殊的功能,比如全文检索、同义词处理、相关度排名、复杂数据分析、海量数据近实时处理;ES作为传统数据库的一个补充,提供了数据库所不能提供的很多功能。

ES的核心概念

1.  Lucene和es的前世今生

2.  es的核心概念

3.  es的核心概念 vs 数据库核心概念

1. lucene和ES的前世今生

lucene,最先进、功能最强大,基于lucene开发非常复杂,api复杂(实现一些简单的功能,写大量的java代码),需要深入理解原理(各种索引结构)

ES,基于lucene,隐藏了复杂性,提供了简单易用的restful api接口、java api接口(还有其他语言的api接口)

  • 分布式的文档存储引擎

  • 分布式的搜索引擎和分析引擎

  • 分布式、支持PB级数据

开箱即用,优秀的默认参数,不需要任何额外设置,完全开源。

2. ES的核心概念

  • Near Realtime(NRT):近实时,两个意思,从写入数据到数据可以被搜索到有一个小延迟(大概1秒):基于ES执行搜索和分析可以达到秒级

  • Cluster:集群:包括多个节点,每个节点属于哪个集群(集群名称,默认是elasticsearch)来决定的,对于中小型应用来说,刚开始一个集群就是一个节点很正常。

  • Node:节点,集群中的一个节点,节点也有一个名称(默认随机分布的),节点名称很重要,在执行运维管理的时候,默认节点会加入一个名称为"elasticsearch"的集群,如果直接启动一堆节点,那么他们会自动组成一个elasticsearch集群,当然一个节点也可以组成一个集群。

  • Document:文档,ES中最小的数据单元,一个document通常是使用json的数据格式表示的。每个index下的type,都可以存储多个document. 一个document中有很多字段field,一个field就是一个数据字段。

{
name: "JmyvpeE",
cluster_name: "elasticsearch_youdi",
cluster_uuid: "spAvb2wnQe-xVghYxleJ5A",
version: {
number: "6.2.4",
build_hash: "ccec39f",
build_date: "2018-04-12T20:37:28.497551Z",
build_snapshot: false,
lucene_version: "7.2.1",
minimum_wire_compatibility_version: "5.6.0",
minimum_index_compatibility_version: "5.0.0"
},
tagline: "You Know, for Search"
}
  • Index:索引,包含一堆相似的结构的文档数据。一个index包含多个document,一个index就代表一类类似的或者相同的document,

  • Type: 类型,每个索引里面都有一个或者多个type,type是index的一个逻辑数据分类,一个type 下的document,都有相同的field,比如博客系统,有一个用户数据type,博客数据type,评论数据type.

    商品index,里面存放了所有商品,商品document,但是商品分类有很多种,每个种类的document的field可能不太一样,比如电器商品,可能还包含一些售后时间的field,等等

    type,日化商品type,电器商品type

    Pid,name,desc,category,

    Pid,name,desc,category, serivice_time

    Pid,name,desc,category, eat_time

    ​ 每个type里面都包含一堆document

  • shard: index会被拆分多个shard,每个shard就会存放这个index的一部分数据,这些shard会分散在多台服务器上

    优点:

    • 横向扩展,比如说数据增加,可以重新建立多shard的索引

    • 数据分布在多个shard上,多台服务器上,所有的操作,就会在多台服务器上并行分布式执行,提升吞吐量和性能。

  • repi: 如果某个节点宕机,一部分数据彻底丢失。 sahrd其实叫primary shard,一般简称shard,replica其实叫replica shard,简称:replicate

    • 高可用,一个shard宕机,数据不丢失,服务继续提供

    • 提升了搜索这类请求的吞吐量和性能

  • ES核心概念 VS 数据库概念

    ES 关系数据库
    Document row
    Type table
    index

ES的安装和使用

ES特点之一就是开箱即用
http://127.0.0.1:9200?pretty

{
    name: "JmyvpeE",
    cluster_name: "elasticsearch_youdi",
    cluster_uuid: "spAvb2wnQe-xVghYxleJ5A",
    version: {
    number: "6.2.4",
    build_hash: "ccec39f",
    build_date: "2018-04-12T20:37:28.497551Z",
    build_snapshot: false,
    lucene_version: "7.2.1",
    minimum_wire_compatibility_version: "5.6.0",
    minimum_index_compatibility_version: "5.0.0"
    },
    tagline: "You Know, for Search"
}

name: node名称 cluster_name 集群名称

 ES的配置文件
 修改集群名称:elastic search.yml
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容