es 索引和文档 API (四)

1. 文档

es 中的文档相当于 MySQL 表中的一行,数据就存储在文档中。json 形式结果,由字段组成,常见的数据类型有:

  • 字符串:text、keyword,text是分词,keyword是不分词的
  • 数值型:long、integer、short、byte、double、float、half_float、scaled_float
  • 布尔:boolean
  • 日期:date
  • 二进制:binary
  • 范围类型:integer_range、float_range、long_range、double_range、date_range

1.1 文档元数据

用于标注文档的相关信息:

  • _index:文档所在的索引名
  • _type:文档所在的类型名
  • _id:文档唯一 id
  • _score:相关性算分
  • _uid:组合 id,有_type_id组成(从6.x开始_type不再起作用,同_id一样)
  • _source:文档的原始 json 数据,可以从这里获取每个字段的内容
  • _all:整合所有字段内容到该字段,默认下禁用

1.2 文档相关 API

1、创建文档:

# f1 索引名、doc 为 `_type` 文档类型名、1 文档 id
PUT f1/doc/1
{
    "name": "rose",
    "age": 18
}

2、查询文档:

GET f1/doc/_search      # 查询该索引下所有文档
GET f1/doc/1            # 查询文档 ID 为 1 的文档

3、批量操作:

# 第一列的 index 表示新增,若存在则覆盖,其余的两个是 update 修改或 delete 删除
PUT /_bulk
{
    "index": {
        "_index": "test_index1",
        "_type": "doc",
        "_id": 3
    }
}
{
    "name": "rose"
}
{
    "update": {
        "_index": "test_index1",
        "_type": "doc",
        "_id": 1
    }
}
{
    "doc": {
        "name": "lila"
    }
}
{
    "delete": {
        "_index": "test_index1",
        "_type": "doc",
        "_id": 1
    }
}

4、删除文档:

DELETE f1/doc/1      # 删除文档

5、一次性查询多个文档:

GET /_mget
{
    "docs": [
        {
            "_index": "test_index1",
            "_id": 1,
            "_type": "doc"
        },
        {
            "_index": "test_index1",
            "_id": 3,
            "_type": "doc"
        }
    ]
}

2. 索引

由具有相同字段的文档列表组成,相当于 mysql 中的表。每个索引都有自己的 mapping 定义,用于定义字段名和类型,索引中存储着具有相同结构的文档。

原文地址:https://www.cnblogs.com/midworld/p/13782869.html