Es的CURD基本操作命令
使用工具
head
kibana
IK分词器
文章目录
因为Es的请求都是使用的Rest风格 所以他的请求的方式都是
PUT 创建/覆盖
POST 覆盖/编辑
GET 查询
DELETE 删除
基础命令
新增
- 创建索引并且指定文档的字段类型
PUT test1
{
"mappings": {
"properties": {
"name":{
"type": "text"
},
"age":{
"type": "long"
},
"sex":{
"type": "text"
}
}
}
}
- 创建索引并自动指定类型
// 1就好比数据库的表内的ID
// _doc就代表默认类型
PUT test2/_doc/1
{
"name":"测试默认类型",
"age":18,
"sex":"男"
}
查询
- 获取索引库的基本信息
GET test1
- 查询索引库指定文档数据
GET test2/_doc/1
查询索引下所有的文档
GET /test3/_doc/_search
修改
查询获取修改结果
// _update 一定要加 否则其他数据会被覆盖
POST /test2/_doc/1/_update
{
"doc":{
"name":"测试修改"
}
}
GET /test2/_doc/1
删除
- 删除指定的索引库
DELETE /test1
- 删除指定索引库内的指定文档
DELETE /test2/_doc/1
测试IK分词
POST _analyze
{
"analyzer":"ik_max_word",
"text":"你回家吃饭吗?"
}
复杂查询
精准查询
GET /test3/_doc/_search
{
"query":{
"match":{
"name":"张三"
}
}
}
查询并指定返回那些字段
GET /test3/_doc/_search
{
"query":{
"match":{
"name":"张三"
}
},
"_source":["name"]
}
排序查询
// sort:代表排序 "_score":"代表排序的字段" order:代表排序规则 倒序还是正序 asc:正 desc:倒
GET /test3/_doc/_search
{
"query": {
"match": {
"name": "张三"
}
},
"_source": [
"name"
],
"sort": {
"_score": {
"order": "asc"
}
}
}
分页查询
// "from": 当前页 "size": 展示几条
GET /test3/_doc/_search
{
"query": {
"match": {
"name": "张三"
}
},
"_source": [
"name"
],
"sort": {
"_score": {
"order": "asc"
}
},
"from":0,
"size":1
}
多条件查询
1.and
2. or
3. not
过滤查询
// "filter":"代表的就是过滤" age:过滤的字段
// gt:大于 lt:小于 gte:大于等于 lte:小于等于
GET /test3/_doc/_search
{
"query": {
"bool": {
"must_not": [
{
"match": {
"age": 25
}
}
],
"filter": {
"range": {
"age": {
"gt": 18,
"lt": 27
}
}
}
}
},
"_source": [
"name",
"age"
],
"sort": {
"_score": {
"order": "asc"
}
},
"from": 0,
"size": 10
}
多空格查询
// "name":"哈哈 默认的" 查询name字段带有 哈哈 或者 默认的 数据
GET /test3/_doc/_search
{
"query": {
"match": {
"name": "张三 王武"
}
},
"_source": [
"name",
"age"
],
"sort": {
"_score": {
"order": "asc"
}
},
"from": 0,
"size": 10
}
高亮查询
// highlight: 代表的就是高亮查询
// name:代表高亮的字段
// pre_tags:代表的是高亮自定标签格式开头
// post_tags:代表的是高亮自定标签格式结尾
// 如果不指定上面的两个 ES会有自动的标签
GET /test3/_doc/_search
{
"query": {
"match": {
"name": "张三 王武"
}
},
"highlight": {
"pre_tags": "<p>",
"post_tags": "</p>",
"fields": {
"name": {}
}
},
"_source": [
"name",
"age"
],
"sort": {
"_score": {
"order": "asc"
}
},
"from": 0,
"size": 10
}
查询所有的索引库
GET /_cat/indices?v
聚合查询
分组查询
// aggs 聚合操作
// sex_group 自定义的名称
// terms 分组标识 也可以跟换其他的聚合
// field 根据那个字段分组
GET /test3/_doc/_search
{
"aggs":{
"sex_group":{
"terms":{
"field":"age"
}
}
},
"size":0
}