#新增文档(可以指定id, 或者由es生成)
POST .kibana_1/_doc/[id]
{
  "visualization" : {
      "title" : "First ES Doc",
      "visState" : "this is my first es document2.",
      "uiStateJSON" : "{}",
    },
    "type" : "visualization",
    "updated_at" : "1556582400000"
}

#修改文档
PUT .kibana_1/_doc/466x1GoBzyYXTMCaEtuq
{
  "visualization" : {
      "title" : "First ES Doc",
      "visState" : "this is my first es document2.",
      "uiStateJSON" : "{}",
      "description" : "",
      "version" : 1,
      "kibanaSavedObjectMeta" : {
        "searchSourceJSON" : """{"query":{"query":"","language":"kuery"},"filter":[]}"""
      }
    },
    "type" : "visualization",
    "references" : [ ],
    "migrationVersion" : {
      "visualization" : "7.0.1"
    },
    "updated_at" : "1556582400000"
}

#id查找
GET .kibana_1/_doc/466x1GoBzyYXTMCaEtuq

#指定字段返回
GET .kibana_1/_doc/466x1GoBzyYXTMCaEtuq?_source=visualization.title,visualization.visState,type,migrationVersion

#分页查询size=多少, from从哪里开始
GET .kibana_1/_doc/_search?size=1&from=4000
{
  "query": {
    "match_all": {}
  }
}

#只返回内容
GET .kibana_1/_doc/466x1GoBzyYXTMCaEtuq/_source

#检查是否存在
HEAD .kibana_1/_doc/466x1GoBzyYXTMCaEtuq

#请求参数方式搜索
GET kibana_sample_data_ecommerce/_doc/_search?q=category:Men's Clothing+products.price:>700

#访问映射
GET kibana_sample_data_ecommerce/_mapping

# 分析器演示
GET /_analyze
{
  "analyzer": "english",
  "text": ["This is my house. i'm living here",
          "every one know that",
          "don't you know"]
}

#定义索引映射
PUT kibana_sample_data_ecommerce/_mapping
{
  "properties": {
      "category":{
        "type": "text",
        "index": true
      }
  }
}

#更新索引映射
es中想要给一个已经建好映射的索引改变映射结果,即使改变一个字段类型都是不支持的,
需要重新建立索引以及映射结构,然后把以前的数据导入到新建的索引结构中去,完成改变映射结构的目的。
步骤:
1.给已有的索引定一个别名,并指向该别名
2.新建一个新的索引,新的映射结构
3.将别名指向新的索引,取消旧的索引与别名之间的关联
通过这几部即可达到重新改变映射结构的内容,例如我们想改变library01的映射中price字段的类型由现有的double变为integer类型。

一个简单的例子:

#删除索引
DELETE products

#建立索引
PUT products
{
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 1
  }
}
#建立映射
PUT products/_mapping
{
  "properties": {
    "category":{
      "type": "text",
      "index": true
    },
    "id":{
      "type": "text",
      "index": true
    },
    "name":{
      "type": "text",
      "analyzer": "standard"
    },
    "description":{
      "type": "text",
      "analyzer": "standard"
    },
    "price":{
      "type": "double"
    },
    "detail":{
      "type": "text",
      "analyzer": "standard"
    },
    "enabled":{
      "type": "boolean"
    },
    "picture":{
      "type": "text"
    }
  }
}
#查询映射
GET products/_mapping
#写入数据
POST /products/_doc
{
  "category": "HaiLan Home",
  "id": "A92934JSDFIQ9234SJDF",
  "name": "男裤",
  "description": "纯棉 男裤 夏季 清凉一夏 直筒",
  "price": 201.50,
  "enabled": true,
  "picture": "http://img.alicdn.com/tfscom/i4/1692495776/TB2vLAKaDMG5uJjSZFAXXbmspXa_%21%211692495776.jpg",
  "detail": "裤子是人们下体所穿的主要服饰。原写作“绔”、“袴”。从出土文物及传世文献来看,早在春秋时期,人们的下体己穿著裤,不过那时的裤子不分男女,都只有两只裤管,其形制和后世的套裤相似,无腰无裆,穿时套在胫上,即膝盖以下的小腿部分,所以这种裤子又被称为“胫衣”。左右各一,分衣两胫。因其只有两只裤管,所以裤的计数与鞋袜相同,都用“两”字来计,居延汉简中就有这样的情况。穿著这种裤子,其目的是为了遮护胫部,尤其在冬天,可以起到保暖的作用,至于膝盖以上部分则无遮护。"
}
#查询数据
GET products/_doc/_search

备注: 随着 7.0 版本的发布,type 的移除也是越来越近了,在 6.0 的时候,已经默认只能支持一个索引一个 type 了,7.0 版本新增了一个参数 include_type_name ,即让所有的 API 是 type 相关的,这个参数在 7.0 默认是 true,不过在 8.0 的时候,会默认改成 false,也就是不包含 type 信息了,这个是 type 用于移除的一个开关。 让我们看看最新的使用姿势吧,当 include_type_name 参数设置成 false 后:

 索引操作:
PUT {index}/{type}/{id}需要修改成PUT {index}/_doc/{id}
Mapping 操作:
PUT {index}/{type}/_mapping 则变成 PUT {index}/_mapping
所有增删改查搜索操作返回结果里面的关键字 _type 都将被移除, 父子关系使用 join 字段来构建

发表评论

邮箱地址不会被公开。 必填项已用*标注