Elasticsearch

文章目录

  • Elasticsearch 概述
  • Elasticsearch入门

一、Elasticsearch概述

1.1 搜索是什么

概念:用户输入想要的关键词,返回含有该关键词的所有信息。

场景:
        1互联网搜索:谷歌、百度、各种新闻首页
        2 站内搜索(垂直搜索):企业 OA 查询订单、人员、部门,电商网站内
部搜索商品(淘宝、京东)场景。

1.2 数据库做搜索弊端

1.2.1站内搜索(垂直搜索):数据量小,简单搜索,可以使用数据库。

l 存储问题。电商网站商品上亿条时,涉及到单表数据过大必须拆分表,
数据库磁盘占用过大必须分库( mycat )。
l 性能问题:解决上面问题后,查询 笔记本电脑 等关键词时,上亿条数据
的商品名字段逐行扫描,性能跟不上。
l 不能分词。如搜索 笔记本电脑 ,只能搜索完全和关键词一样的数据,那
么数据量小时,搜索 笔记电脑 电脑 数据要不要给用户。

1.2.2互联网搜索,肯定不会使用数据库搜索。数据量太大。PB级。

我们可以使用搜索引擎来解决数据库搜索的问题 :
搜索也是一款数据库,搜索可以进行分词搜索 --- 搜索速度非常快

1.3常见的搜索引擎

ElasticSearchSolr比较

1.当单纯的对已有数据进行搜索时,Solr更快

2. 当实时建立索引时,Solr会产生io阻塞,查询性能较差,ElasticSearch具有明显的优势

3. 随着数据量的增加, Solr 的搜索效率会变得更低,而 ElasticSearch
却没有明显的变化
总结
1 es 基本是开箱即用 ( 解压就可以用 !) 【南京】 , 非常简单。 Solr
安装略微复杂一丢丢 !
2 Solr 利用 Zookeeper 进行分布式管理 ,
Elasticsearch<mark> 自身带有分布式协调管理功能 </mark>
3 Solr 支持更多格式的数据 , 比如 JSON XML CSV ,
Elasticsearch 仅支持 json 文件格式。
4 Solr 官方提供的功能更多 , Elasticsearch 本身更注重于核心
功能,高级功能多有第三方插件提供,例如图形化界面需要 kibana
好支撑
5.Solr 查询快 , 但更新索引时慢 ( 即插入删除慢 ) ,用于电商等查询
多的应用 ;
        ES建立索引快 ( 即查询慢 ) ,即实时性查询快,用于 facebook 新浪等
搜索。
        Solr是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于
新兴的实时搜索应用。
6 Solr 比较成熟,有一个更大,更成熟的用户、开发和贡献者社区,
Elasticsearch 相对开发维护者较少 , 更新太快 , 学习使用成本较

1.4Elasticsearch 是什么

The Elastic Stack, 包括 Elasticsearch 【搜索,分析】、 Kibana 【可视
化】、 Beats Logstash 【数据的搜集】(也称为 ELK Stack )。能够安
全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、
分析和可视化。
Elaticsearch ,简称为 ES ES 是一个 开源的高扩展的分布式全文搜索引
, 是整个 ElasticStack 技术栈的核心。
它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台
服务器,处理 PB 级别的数据。

1.5Elasticsearch的使用场景

国外:
维基百科,类似百度百科, 网络七层协议 的维基百科,全文检索,高
亮,搜索推荐
Stack Overflflow (国外的程序讨论论坛),相当于程序员的贴吧。遇到
it 问题去上面发帖,热心网友下面回帖解答。
GitHub (开源代码管理),搜索上千亿行代码。
电商网站,检索商品
日志数据分析, logstash 采集日志, ES 进行复杂的数据分析( ELK
术, elasticsearch+logstash+kibana
商品价格监控网站,用户设定某商品的价格阈值,当低于该阈值的时
候,发送通知消息给用户,比如说订阅《 java 编程思想》的监控,如果
价格低于 27 块钱,就通知我,我就去买。
BI 系统,商业智能( Business Intelligence )。大型连锁超市,分析全
国网点传回的数据,分析各个商品在什么季节的销售量最好、利润最
高。成本管理,店面租金、员工工资、负债等信息进行分析。从而部署
下一个阶段的战略目标。
国内:
百度搜索,第一次查询,使用 es
OA ERP 系统站内搜索。

        es:搜索的一款数据库,支持的数据格式json.


二、 ES的安装

1 、安装 JDK ,至少 1.8.0_73 以上版本,验证:
java -version
2 、下载和解压缩 Elasticsearch 安装包,查看目
录结构。
https://www.elastic.co/cn/downloads/elasticsearch
下载地址: https://www.elastic.co/cn/downloads/
历史版本下载: https://www.elastic.co/cn/downloads/past-releases/

 

解压后,进入 bin 文件目录,点击 elasticsearch.bat 文件启动 ES 服务 。
注意: 9300 端口为 Elasticsearch 集群间组件的通信端口, 9200 端口为
浏览器访问的 http 协议 RESTful 端口
打开浏览器,输入地址: http://localhost:9200 ,测试返回结果,返回结
果如下:

三、 Windows安装Kibana

1 kibana es 数据的前端展现,数据分析时,可以方便地看到数据。作
为开发人员,可以方便访问 es
https://www.elastic.co/cn/downloads/
历史版本下载: https://www.elastic.co/cn/downloads/past-releases/
2 、下载,解压 kibana
3 、启动 Kibana bin\kibana.bat
4 、浏览器访问 http://localhost:5601 进入 Dev Tools 界面。像 plsql 一样支
持代码提示。
5 、发送 get 请求,查看集群状态 GET _cluster/health 。相当于浏览器访
问。

四、 ES中常见的概念 

Elasticsearch 面向文档型数据库 ,一条数据在这里就是一个文档。 为
了方便大家理解,我们将 Elasticsearch 里存储文档数据和关系型数据库
MySQL 存储数据的概念进行一个类比
ES 里的 Index 可以看做一个库,而 Types 相当于表, Documents 则相当
于表的行。这里 Types 的概念已经被逐渐弱化, Elasticsearch 6.X 中,一
index 下已经只能包含一个 type Elasticsearch 7.X , Type 的概念已
经被删除了。

五、 ES常用API接口

 六、基本操作

创建一个索引,添加
PUT / test01 / type1 / 1
{
"name" : " 张三 " ,
"age" : 15
}

 

 字段数据类型

字符串类型
        text、
keyword
        
- text :支持分词,全文检索 , 支持模糊、精确查询 , 不支持聚合 , 排序
操作 ;text 类型的最大支持的字符长度无限制 , 适合大字段存储;
- keyword :不进行分词,直接索引、支持模糊、支持精确匹配,支持
聚合、排序操作。 keyword 类型的最大支持的长度为 ——32766 UTF-8
类型的字符 , 可以通过设置 ignore_above 指定自持字符长度,超过给
定长度后的数据将不被索引,无法通过 term 精确匹配检索返回结果。
数值型
longIntegershortbytedoubleflfloathalf flfloat scaled flfloat
日期类型
date
te 布尔类型
boolean
二进制类型
binary
等等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值