ES学习文档
1. 名词描述
1.1索引(index)=>近似与数据库
1.1.1添加索引
例:put /YunShangPu (添加一个索引名称为YunShangPu)
1.1.2删除索引
例:DELETE / YunShangPu (删除名称为YunShangPu的索引)
1.1.3查询索引
例:GET/YunShangPu(查询名称为YunShangPu的索引)
1.2类型(type) =>近似与数据表
1.2.1创建字段映射(类似于创建数据表指定并指定数据类型)
语法:固定写法 PUT /索引库/_mapping/类型名或 PUT /索引库/类型名/_mapping
示例1:索引库(YunShangPu)中创建类型ProductBase并包含productName/ productNo/ sort/ isShow/ createDate等字段
#创建类型
#包含字段
#产品名称:productName
#产品编号:productNo
#排序号:sort
#是否展示:isShow
#创建时间:createDate
#单价:price
#示例1 /类型text允许分词 类型keyWord不允许分词
PUT /YunShangPu/ProductBase/_mapping
{
“properties”: {
“productName”:{
“type”: “text”,
“index”: true
},
“productNo”:{
“type”: “keyword”,
“index”: true
},
“sort”:{
“type”: “long”
},
“isShow”:{
“type”: “boolean”
},
“createDate”:{
“type”: “date”
},
“price”:{
“type”: “double”
}
}
}
1.2.2查询类型
语法:GET /索引库/类型名/_mapping或GET /索引库/_mapping/类型名
1、GET /YunShangPu/ProductBase/_mapping
2、GET /YunShangPu/_mapping/ProductBase
1.2.3查询类型中数据
语法:GET /索引名/类型名/_search
如:GET /YunShangPu/ProductBase/_search
1.2.4快速创建类型和索引(常用)
PUT /YunShangPu1
{
“settings”: {},
“mappings”: {
“Goods”:{
“properties”:{
“ProductName”:{
“type”:“text”
}
}
}
}
}
1.3文档(document) =>近似与数据库行数据
1.3.1添加一条行数据
(一)索引YunShangPu中添加一条商品信息到类型ProductBase Id为1
PUT /YunShangPu/ProductBase/1
{
“productName”:”充电宝”,
“productNo”:”YSP001”,
“productPrice”:0.01,
“sort”:1,
“isShow”:true,
“createDate”:”2020-11-16 16:27:00”
}
(二)索引YunShangPu中更新一条商品信息到类型ProductBase Id为1将充电宝重命名为充电器
PUT /YunShangPu/ProductBase/1
{
“productName”:”充电器”,
“productNo”:”YSP001”,
“productPrice”:0.01,
“sort”:1,
“isShow”:true,
“createDate”:”2020-11-16 16:27:00”
}
(三)取出索引为YunShangPu 类型是ProductBase Id为1的数据
GET /YunShangPu/ProductBase/1
(四) 删除索引为YunShangPu 类型是ProductBase Id为1的数据
DELETE /YunShangPu/Product/1
1.4字段(field) =>近似与数据列数据
2.复杂查询
2.1基础查询(索引:YunShangPu)
GET /YunShangPu/_search
2.1.1 match_all查询
GET /YunShangPu/_search
{
“query”: {
“match_all”: {}
}
}
2.1.2match查询(分词查询)
GET /YunShangPu/_search
{
“query”: {
“match”: {
“ProductName”: “无线充电宝”
}
}
}
2.1.3term精确查询
GET /YunShangPu/_search
{
“query”: {
“term”: {
“ProductNo”: {
“value”: “ES002”
}
}
}
}
2.1.3range范围查询
#gt 大于
#gte 大于等于
#lt 小于
#lte 小于等于
GET /YunShangPu/_search
{
“query”: {
“range”: {
“price”: {
“gt”: 10,
“lte”: 19.99
}
}
}
}
2.2字段筛选(_source)
2.2.1直接筛选
{
“_source”:[“字段1”,”字段二”],
“query”:{
//查询条件数据
}
}
2.2.2指定字段显示筛选includes (表示指定的字段显示到查询结果)
{
“_source”:{
“includes”: [“字段1”,”字段二”]
},
“query”:{
//查询条件数据
}
}
2.2.3指定字段不显示excludes(表示查询结果不显示指定的字段)
{
“_source”:{
“includes”: [“字段1”,”字段二”]
},
“query”:{
//查询条件数据
}
}
2.3布尔查询GET /YunShangPu/_search
2.3.1must(与)查询
{
“query”:{
“bool”:{
“must”:{
“match”:{
“字段名”:”查询值”
}
}
}
}
}
2.3.2must_not(非)查询
{
“query”:{
“bool”:{
“must_not”:{
“match”:{
“字段名”:”查询值”
}
}
}
}
}
2.3.3 should(或)查询
{
“query”:{
“bool”:{
“must_not”:{
“match”:{
“字段名”:”查询值”
}
}
}
}
}
2.3.4组合查询
3.服务器集群
3.1集群优点
1、单节点无法保证服务器高可用性
2、单节点并发量有限
3、单节点容量有限
3.2集群搭建(搭建集群需要先清空data文件数据)
4.安装教程
4.1 Elasticsearch安装教程
4.2IK分词器安装教程
4.3Kibana安装教程
5code3.1使用
多条件拼接查询
http://www.vnfan.com/taylor/d/6eac739a8e90e46a.html