ES API基本操作

创建索引,user为索引名称      

PUT   http://192.168.0.110:9200/user

查询索引基本信息

GET   http://192.168.0.110:9200/user

查询所有索引

GET   http://192.168.0.110:9200/_cat/indices?

删除索引

DELETE   http://192.168.0.110:9200/shopping

索引创建文档数据

POST   http://192.168.0.110:9200/shopping/_doc

{
    "title": "小米手机",
    "category": "小米",
    "images": "http://www.xiaomi.com",
    "price": 9999.00
}

主键查询

GET   http://192.168.0.110:9200/shopping/_doc/tHP1FoMBv-1e6_zbJ75F

索引全量查询

GET   http://192.168.0.110:9200/shopping/_search

{
    "query": {
        "match_all": {  
        }
    }
}

全量修改数据

POST   http://192.168.0.110:9200/shopping/_doc/tHP1FoMBv-1e6_zbJ75F

{
    "title": "华为手机",
    "category": "华为",
    "images": "http://www.华为.com",
    "price": 4999.00
}

局部修改数据

POST   http://192.168.0.110:9200/shopping/_update/tHP1FoMBv-1e6_zbJ75F

{
    "doc": {
        "title": "华为手机"
    }
}

删除主键

DELETE   http://192.168.0.110:9200/shopping/_doc/s3PrFoMBv-1e6_zbHb6Z

条件查询

复制代码
GET   http://192.168.0.110:9200/shopping/_search  或者头部添加?q=key:value,当value为中文会有问题,所以建议使用第一种方法

{
    "query": {
        "match": {
           "category": "小米"
        }
    }
}
复制代码

分页查询

from 从第几条开始查
size 返回几条数据

复制代码
GET   http://192.168.0.110:9200/shopping/_search

{
    "query": {
        "match": {
           "category": "小米"
        }
    },
    "from": 2,  //从0开始
    "size": 3
}
复制代码

条件+分页+过滤+排序

desc 降序
asc 升序

复制代码
GET   http://192.168.0.110:9200/shopping/_search

{
    "query": {
        "match": {
           "category": "小米"   //匹配小米
        }
    },
    "from": 2,
    "size": 7,
    "_source": ["title", "price"],   //对匹配结果进行二次过滤,只显示列表中的数据
    "sort": {
        "price": {   //排序的key
            "order": "asc"   //升序
        }
    }
}
复制代码

多条件查询-同时成立

复制代码
GET   http://192.168.0.110:9200/shopping/_search

{
    "query": {
        "bool": {
            "must": [   //同时成立
                {
                    "match": {
                        "category": "小米"
                    }
                },
                {
                    "match": {
                        "price": 1999.00
                    }
                }
            ]
        }
    }
}
复制代码

多条件查询+或+范围查询

复制代码
GET   http://192.168.0.110:9200/shopping/_search

{
    "query": {
        "bool": {
            "should": [   //或
                {
                    "match": {
                        "category": "小米"
                    }
                },
                {
                    "match": {
                        "category": "华为"
                    }
                }
            ],
            "filter": {  //过滤,固定写法
                "range": {  //范围
                    "price": {
                        "gt": 5000   //大于5000
                    }
                }
            }
        }
    }
}
复制代码

完全匹配查询

复制代码
GET   http://192.168.0.110:9200/shopping/_search

{
    "query": {
        "match_phrase": {   //完全匹配,match 为可以分词查询,此时小华可以同时搜索出小米和华为,如果完全匹配,就用match_phrase
           "category": "小米"   
        }
    }
}
复制代码

高亮显示查询

复制代码
GET   http://192.168.0.110:9200/shopping/_search

{
    "query": {
        "match_phrase": {
           "category": "小米"
        }
    },
    "highlight": {
        "fields": {
            "category": {}
        }
    }
}
复制代码

聚合查询

复制代码
GET   http://192.168.0.110:9200/shopping/_search

//{
//    "aggs": {
//        "price_groups": {  //随便起个名字
//            "terms": {  //固定格式,统计
//                "field": "price"    // 统计关键词
//            }
//        }
//    },
//    "size": 0  // 不显示原始数据
//}

{
    "aggs": {   //表示聚合操作,固定写法
        "price_avg": {  //随便起个名字
            "avg": {  //固定格式,平均值
                "field": "price"    // 统计关键词
            }
        }
    },
    "size": 0  // 不显示原始数据,只显示统计结果
}
复制代码

映射创建索引

复制代码
PUT  http://192.168.0.110:9200/user/_mapping

{
    "properties": {
        "name": {
            "type": "text", //可以分词查询
            "index": true
        },
        "sex": {
            "type": "keyword", //不可以分词查询,完全匹配查询
            "index": true            
        },
        "tel": {
            "type": "keyword",
            "index": false     // 不能按索引查询                  
        }
    }
}
复制代码

统计一天进了多少条数据

复制代码
topicanalysismsgl/_count


{
  "query": {
    "range": {
      "createTime": {
        "from": "2022-10-07T01:00:00+08:00",
        "to": "2022-10-07T18:40:45+08:00"
      }
    }
  }
}
复制代码

按字段排序

{
  "sort": {
    "createTime": {
      "order": "desc"
    }
  }
}

统计某个时间段数据量

复制代码
index/_count

{
  "query": {
    "range": {
      "createTime": {
        "from": "2022-04-01T00:00:00+08:00",
        "to": "2022-05-01T00:00:00+08:00"
      }
    }
  }
}
复制代码

 关键字匹配加排序

复制代码
{
    "query": {
        "match": {
           "teamId": 10
        }
    },
    "sort": {
        "createTime": {
            "order": "desc"
        }
    }
}
复制代码

关键字排序

{
  "sort": {
    "createTime": {
      "order": "desc"
    }
  }
}

 索引新增字段

复制代码
index/_mapping

{
  "properties": {
    "字段": {
      "type": "integer"
    }
  }
}
复制代码

 列出所有索引列表

curl -u elastic:pwd  localhost:9200/_cat/indices

删除数据

复制代码
post      index/_delete_by_query

{
  "query": {
    "range": {
      "createTime": {
        "from": "2023-04-07T00:00:00+08:00",
        "to": "2023-04-08T00:00:00+08:00"
      }
    }
  }
}
复制代码

 

posted @   不会跳舞的胖子  阅读(170)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示