1.es的认识
1.1 什么是es
es 全称elasticsearch
es : 做全文检索的 ,底层基于lucene的开发
lucene 相等于jdbc
es 相当于 mybatis/jpa
1.2 es和lucene的比较
为什么需要使用es.为什么不用lucene?
(1)api操作很麻烦 不方便
搜索 : 创建索引 搜索索引 一堆api
es: get /product/1 – {}
(2)lucene不支持集群
es集群 处理很大的数据量
KB – > MB -->GB – >TB – >PB
1024KB – 1MB
1024MB – 1GB
1024GB – 1TB
1024TB – 1PB
1.3 es和它的竞争对手solr的区别es 和 solr 都可以做全文检索,solr的重量级的框架,它除了全文检索以外,还可以做其他的事情(比如
命中标示、分面搜索、动态聚类、数据库集成,以及富文本(如Word、PDF)),solr可以nosql结合起来使用
solr 在传统的搜索效率要比es好,但是实时搜索领域比es低
2.使用es
(1)安装ES服务端
解压–>bin/elasticsearch.bat–>浏览器访问 http://localhost:9200/
9200web里面展示的效果 9300java程序可以访问的端口
(2)es的客户端的交互方式
a) 基于restful风格API的去操作
get post put delete patch
(1)curl的命令方式 --不用
(2)kibana也可以操作
(3)head工具
(4)postman(测试后台的java代码)
b) 通过java代码去操作
java通过9300操作es服务器
(5)restful风格 +JSON方式 操作数据
http特点 就是无状态的
get /shopping/1
put /shopping/2 {“name”:“xx产品”}
post /shopping/2 {“name”:“xx产品”}
delete /shopping/1
3.使用客户端
(1)kibanna客户端
index : 索引库
type: 看成一个表
json:看成一行数据
1.要先打开服务器
2.解压文件
3.kibana-5.2.2-windows-x86\bin下面的
这样就说明成功了
4.es集群的状态
red: 红色 不健康的状态 服务的有问题
green:绿色 所有的正常 主从都分配好,集群可以使用
yellow:黄色 主从分配 至少有一个从缺失
2主 n从
5.文档的crud
5.1基本的crud
#完成crud
#新增
PUT crm/employee/1
{
“name”:“qyh”,
“age”:20
}
#查询
GET crm/employee/1
#修改 --局部文档
POST crm/employee/1/_update
{
“doc”: {“name”:“woshishui”}
}
#修改 --整个文档
POST crm/employee/1
{
“name”:“lao”
}
#删除
DELETE crm/employee/1
#ES内置ID创建
POST crm/employee/
{
“name”:“ses”
}
#查看这个数据库中所有的数据
GET crm/employee/_search
5.2特殊的用法
展示没有什么效果(了解)
GET crm/employee/AW-tOSHILqo6XVH8f6cg?pretty
展示部分的字段
GET crm/employee/AW-tOSHILqo6XVH8f6cg?_source=age,name
#返回元数据
GET crm/employee/AW-tOSHILqo6XVH8f6cg/_source
#修改数据 (脚本修改 --了解)
POST crm/employee/AW-tOSHILqo6XVH8f6cg/_update
{
“script” : “ctx._source.age += 5”
}
#批量新增 --了解
POST _bulk
{ “delete”: { “_index”: “itsource”, “_type”: “employee”, “_id”: “123” }}
{ “create”: { “_index”: “itsource”, “_type”: “blog”, “_id”: “123” }}
{ “title”: “我发布的博客111” }
{ “index”: { “_index”: “itsource”, “_type”: “blog” }}
{ “title”: “我的第二博客2222” }
GET itsource/blog/_search
5.3文档的查询
1.通过id查询
GET crm/employee/AW-uKaoVKxz5GQRVVJAu/_source
2.其他查询
#展示部分字段
GET crm/employee/1?_source=age,name
#返回元数据
GET crm/employee/AW-uKaoVKxz5GQRVVJAu/_source
#不同库 不同表数据 (了解)
GET _mget
{
“docs” : [
{
“_index” : “itsource”,
“_type” : “blog”,
“_id” : “123”
},
{
“_index” : “crm”,
“_type” : “employee”,
“_id” : “AW-uKaoVKxz5GQRVVJAu”,
“_source”: [“name”]
}
]
}
#同一个库 同一个表数据
GET itsource/blog/_mget
{
“ids”:[“123”,“AW-uNCq9Kxz5GQRVVJAw”]
}
#分页查询
GET crm/employee/_search?size=2&from=0
#带条件查询
GET crm/employee/_search?q=age:25
GET crm/employee/_search?q=age[18 TO 50]