elastic-search HTTP请求

elastic-search请求

索引

  • 查看所有索引
GET _cat/indices?v&pretty
  • 查看索引信息
GET index_name/_mapping
  • 插入索引
PUT index_name
{
    "settings":{
   "number_of_shards":1,
        "number_of_replicas": 0
    },
    "mappings":{
        "properties":{
            "field_name":{
                "type":"field_type"
            },
            "range_field":{
                "type":"date_range",
                "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            }
            ......
        }
    }
}
类型 特性 结构 场景
text 支持分词,全文检索,支持模糊、精确查询,不支持聚合,排序操作 最大支持的字符长度无限制,适合大字段存储 存储全文搜索数据, 例如: 邮箱内容、地址、代码块、博客文章内容等。默认结合standard analyzer(标准解析器)对文本进行分词、倒排索引。默认结合标准分析器进行词命中、词频相关度打分。
keyword 不进行分词,直接索引,支持模糊、支持精确匹配,支持聚合、排序操作。 keyword类型的最大支持的长度为——32766个UTF-8类型的字符,可以通过设置ignore_above指定自持字符长度,超过给定长度后的数据将不被索引,无法通过term精确匹配检索返回结果。 存储邮箱号码、url、name、title,手机号码、主机名、状态码、邮政编码、标签、年龄、性别等数据。    用于筛选数据(例如: select * from x where status='open')、排序、聚合(统计)。    直接将完整的文本保存到倒排索引中。
long、integer、short、byte、double、float、half_fliat、scaled_float 数字
date、data_nanos 日期
boolean 布尔型
binary 二进制类型 该字段默认情况下不存储,并且不可搜索。 该binary类型接受二进制值作为 Base64编码的字符串
integer_range、float_range、long_range、double_range、date_range 范围类型 用于查询存储区间
nested 内联
  • 删除索引
DELETE index_name
DELETE index_name1,index_name2
DELETE index_*
DELETE _all
  • 修改索引
PUT index_name/settings
{
    "number_of_replicas":1
}
  • 索引别名
POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "index_alias_old",
        "alias": "index_alias_new"
      }
    }
  ]
}

数据

  • 查询全部
GET index_name/_search
{
  "size": 120,
  "query": {
    "match_all": {}
  }
}
  • 带条件查询
GET index_name/_search
{
  "query": {
    "term": {
      "id": "1598150740876988418"
    }
  }
}
  • 带条件查询-in
GET index_name/_search
{
  "query": {
    "terms": {
      "id": ["1598150740876988418"]
    }
  }
}
  • 插入数据
POST index_name/product
{
    "field1":"",
    "field2":"2022-12-12",
    ......
}
  • 带条件删除
GET index_name/_delete_by_query?pretty
{
  "query": {
    "term": {
      "id": "1598150740876988418"
    }
  }
}
  • 带条件删除-in
GET index_name/_delete_by_query?pretty
{
  "query": {
    "terms": {
      "id": ["1598150740876988418"]
    }
  }
}
  • 修改
POST index_name/_update/{id}?refresh=true
{
    "doc":{
        "field":"value"
    }
}
  • 覆盖式更新
PUT index_name/_doc/{id}?refresh=true
{
    "id": 1,
    .....
}
  • 修改不存在数据时,插入
POST index_name/_update/{id}?refresh=true
{
    "doc":{
        "field":"value"
    },
    "doc_as_upset":true
}

或者

POST index_name/_update/{id}?refresh=true
{
    "script":{
        "source": "ctx._source.field_name='field_value'"
    }
}
posted @ 2022-12-02 13:58  苏戏  阅读(129)  评论(0编辑  收藏  举报