ElasticSearch
如有笔误,欢迎留言指正或讨论!
数据格式
端口号:
- 9300 对内使用
- 9200 对外使用
ES是面向 文档 数据库,一条数据在这里就是一个文档。
对应类型
这里Type 相当于表,type的概念已经被弱化,在es6.0中,一个 Index 下已经只能包含一个Type,在es7.X中,Type 的概念已经被删除了;
| ES | Index(索引) | Type(类型) | Document(文档) | Fields(字段) |
|---|---|---|---|---|
| Mysql | 数据库 | 表名 | 行 | 列 |
倒排索引:按照 Value 找 Key,Value 分词后关键字每个对应 Key
正排索引:按照 key 找 Value
索引
//ES 创建 Index 索引具有冥等性
创建索引 请求地址:PUT 127.0.0.1:9200/索引
查看单个索引 请求地址:GET 127.0.0.1:9200/索引
查看所有索引 请求地址:GET 127.0.0.1:9200/_cat/indices?v
删除索引 请求地址:DELETE 127.0.0.1:9200/索引
索引文档
创建索引 --> 文档 请求地址:post 127.0.0.1:9200/索引/_doc/数据ID
搜索 单个 文档数据 请求地址:GET 127.0.0.1:9200/索引/_doc/数据ID
搜索 全部 文档数据 请求地址:GET 127.0.0.1:9200/索引/_search
删除 单个 文档数据 请求地址:DELETE 127.0.0.1:9200/索引/_doc/数据ID
更新索引 --> 文档 请求地址:post 127.0.0.1:9200/索引/_doc/数据ID
raw {
"doc": {
"name":"世界科技看韩剧卡号圣诞节喀什",
"age":88888
}
}
复杂查询
复杂查询文档数据 请求地址:GET 127.0.0.1:9200/_search
//条件查询
raw {
//查询
"query" : {
//匹配查询
// "match":{
// "name":"科技"
// }
//全量查询
"match_all" : {
}
},
//页码
"from" : 0,
//条数
"size" : 2,
//可以过滤想要的数据字段
"_source" : ["name"],
//可以对某个字段进行排序:字段类型为数字
"sort" : {
"age" : {
"order" : "desc"
}
}
}
//多个条件查询
raw {
"query" : {
//条件的意思
"bool" : {
//must : 代表多个条件 必须同时成立,类似于 AND
//should: 代表多个条件 或成立,类似于 OR
"should" : [
{
//匹配查询
"match" : {
"name" : "科技"
}
},
{
//匹配查询
"match" : {
"name" : "数据库"
}
}
],
//范围查询
"filter" : {
"range" : {
"age" : {
"gt" : 10 //age gt(大于) 10 的数据
}
}
}
}
}
}
全文匹配 & 完全匹配
条件查询文档数据 请求地址:GET 127.0.0.1:9200/_search
raw {
"query" : {
//全文匹配查询
// "match" : {
// "name" : "mysql数据库"
// }
//完全匹配查询
"match_phrase" : {
"name" : "数据"
}
},
//高亮显示 : 就是查询的 name 条件数据添加特定样式,如下 :
//"爱神的箭看哈<em>数</em><em>据</em>库的"
"highlight" : {
"fields" : {
"name" : {}
}
}
}
聚合查询
条件查询文档数据 请求地址:GET 127.0.0.1:9200/_search
raw {
//聚合操作
"aggs" : {
//名称,随意起名
// "ags_group" : {
// //分组:统计结果
// "terms" : {
// "field" : "age" //分组字段
// }
// }
"ags_avg" : {
//平均值:统计结果
"avg" : {
"field" : "age" //分组字段
}
}
},
//不用原始数据,只展示聚合数据
"size" : 0
}
映射关系
1、添加索引的映射关系:必须保证 索引已存在 或 创建好索引 !!!
2、添加索引 映射(_mapping) 属性:请求地址:GET 127.0.0.1:9200/king/_mapping
raw {
//属性
"properties" : {
"name" : {
"type" : "text", //text文本可以分词
"index" : true //true 表示这个字段是可以索引查询的
},
"sex" : {
"type" : "keyword", //keyword关键字表示不可以分词,只可以完整匹配
"index" : true //表示这个字段是可以索引查询的
},
"tel" : {
"type" : "keyword", //文本可以分词
"index" : false //false 表示这个字段是不可以使用索引查询
}
}
}
3、添加索引 文档数据: 请求地址:PUT 127.0.0.1:9200/king/_doc/44444
raw {
"name" : "小王",
"sex" : "男生",
"tel" : "123456"
}
4、可以开始查询 king 的文档数据: 请求地址:GET 127.0.0.1:9200/king/_search
raw {
"query" : {
"match" : {
//"name" : "王"
//"sex" : "男"
"tel" : "123456"
}
}
}
单机 & 集群
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Rain!
评论

