第一步:搞清楚这个框架(技术)是干什么的,解决了什么问题和痛点,同类“竞品”还有哪些
第二步:怎么用
第三步:理解原理
Elasticsearch
WHAT
Elasticsearch
是一个基于 Lucene
的 搜寻服务器 。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web
接口。
Elasticsearch
是用 Java
语言开发的,是一种风行的企业级搜索引擎。
Elasticsearch
的底层是开源库Lucene
。咱们没有方法间接应用Lucene
,必须本人写代码去调用它的接口。
Elasticsearch
是Lucene
的封装,提供了RESTful API
的操作接口,开箱即用。
WHY
应用数据库 来做搜寻业务,不能很好的满足需要。
尽管某一水平上也能够视为数据库,然而它更次要的身份还是一个优良的 全文搜索引擎。它的呈现解决了一部分传统关系型数据库和 NoSQL 非关系型数据库所没有方法高效实现的一些工作,比方高效的全文检索,结构化检索,甚至是数据分析。
响应工夫
eg
:数据库在做含糊查问时,如LIKE
语句,它会遍历整张表,同时进行字符串匹配。
而 es
是基于 顺叙索引 的,检索速度十分快。
分词
Elasticsearch
反对中文分词插件
相关性
Elasticsearch
反对全文搜寻和相关度评分。这样在返回后果就会依据分数由高到低排列。分数越高,意味着和查问语句越相干。
可视化界面
MySQL 的 Navicat
Elasticsearch
的 Kibana
HOW
入门应用
Hbase
WHTA
Hadoop Database
HBase
是 Apache 的 Hadoop
我的项目的子项目。
HBase
是一个高可靠性、高性能、面向列、可伸缩的 分布式存储系统。
HBase
不同于个别的关系数据库,它是一个适宜于非结构化数据存储的数据库,HBase
基于列的而不是基于行的模式.
HBase
的原型是 Google 的 BigTable
论文。
WHY
MySQL
无奈满足海量的数据存储,
MySQL
-> 面向行存储
HBase
-> 面向行存储
HOW
HBase 概念视图
图
表名:webtable
两行:com.cnn.www
和 com.example.www
三个列族:contents
、anchor
、people
对于第一行com.cnn.www
anchor
列族蕴含两列:anchor:cssnsi.com
和 anchor:my.look.ca
{
“com.cnn.www”: {
contents: {
t6: contents:html: “<html>…”
t5: contents:html: “<html>…”
t3: contents:html: “<html>…”
}
anchor: {
t9: anchor:cnnsi.com = “CNN”
t8: anchor:my.look.ca = “CNN.com”
}
people: {}
}
“com.example.www”: {
contents: {
t5: contents:html: “<html>…”
}
anchor: {}
people: {
t5: people:author: “John Doe”
}
}
}
HBase 物理视图
图
HBase
概念视图中显示的 空单元基本不存储。
HBase 表、行与列族
表
创立一个 HBase
表:
create‘<table name>’,’<column family>’
行
HBase
中的行是逻辑上的行,物理模型上行时按列族(column family
)别离存取的。
列族
Hbase
表中的每个列都归属于某个列族,
列名由其 列族前缀 和 限定符 组成,
列的限定符是列族中数据的索引。
eg
:
列族:course
列名:course:math
,course:english
…
cell
由行和列的坐标穿插决定;
单元格是有版本的;
单元格的内容是未解析的字节数组
单元格是由行、列族、列限定符、值和代表值版本的工夫戳组成的,({row key,column( =<family>+<qualifier>),version})惟一确定单元格。cell 中的数据是没有类型的,全副是字节码模式存储。