在ES中,除了定义的index,type,和管理的document外,还有若干的元数据。这些元数据用于记录ES中需要使用的核心数据。在ES中,元数据通常使用下划线’_’开头。

1 查看数据
GET /index_name/type_name/id
如:
GET /test_index/my_type/1
结果:

{
"_index": "test_index",
"_type": "my_type",
"_id": "1",
"_version": 1,
"found": true,
"_source": {
"name": "test_doc_01",
"remark": "first test elastic search",
"order_no": 1
}
}

  

2 _index
代表document存放在哪个index中,_index就是索引的名字。生产环境中,类似的Document存放在一个index中,非类似的Document存放在不同的index中。一个index中包含若干相似的Document。index名称必须是小写的,且不能以下划线'_','-','+'开头。

3 _type
代表document属于index中的哪个type(类别),就是type的名字。ES6.x版本中,一个index只能定义一个type。结构类似的document保存在一个index中。Type命名要求:字符大小写无要求,不能下划线开头,不能包含逗号。(ES低版本,5.x或更低版本。一般一个索引会划分若干type,逻辑上对index中的document进行细致的划分。在命名上,可以全大写或者全小写,不能下划线开头,不能包含逗号。)

4 _id
代表document的唯一标识。使用index、type和id可以定位唯一的一个document。id可以在新增document时手工指定,也可以由es自动创建。
4.1 手动指定id
语法:
PUT /index_name/type_name/id_value
{
    "field_name" : "field_value"
}

使用这种方式,需要考虑是否满足手动指定id的条件。如果数据是从其他数据源中读取并新增到ES中的时候,使用手动指定id。如:数据是从Database中读取并新增到ES中的,那么使用Database中的PK作为ES中的id比较合适。建议,不要把不同表的数据新增到同一个index中,可能有id冲突。
4.2 自动生成id
语法:
POST /index_name/type_name
{
    "field_name" : "field_value"
}
自动生成的ID特点:长度为20的字符串;URL安全(经过base64编码的);GUID生成策略,支持分布式高并发(在分布式系统中,并发生成ID也不会有重复可能,参考https://baike.baidu.com/item/GUID/3352285?fr=aladdin)。适合用于手工录入的数据。数据没有一个数据源,且未经过任何的管理和存储。这种数据,是没有唯一标识,如果使用手工指定id的方式,容易出现id冲突,导致数据丢失。相对少见。

5 _source元数据
就是查询的document中的field值。也就是document的json字符串。此元数据可以定义显示结果(field)。语法是:
GET /index_name/type_name/id_value?_source=field_name1,field_name2

6 _version元数据
代表的是document的版本。在ES中,为document定义了版本信息,document数据每次变化,代表一次版本的变更。版本变更可以避免数据错误问题(并发问题,乐观锁),同时提供ES的搜索效率。
第一次创建Document时,_version版本号为1,默认情况下,后续每次对Document执行修改或删除操作都会对_version数据自增1。
删除Document也会_version自增1。
当使用PUT命令再次增加同id的Document,_version会继续之前的版本继续自增。

Elastic Search常用元数据简介的更多相关文章

  1. elastic search 常用查询

    1.查询mapping curl -X GET "10.0.38.111:1200/metric_data_bus_2018-08-07/_mapping/data_bus?pretty&q ...

  2. Elastic Search快速上手(1):简介及安装配置

    前言 最近开始尝试学习Elastic Search,因此决定做一些简单的整理,以供后续参考,快速上手使用ES. 简介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多 ...

  3. Elastic Search中Document的CRUD操作

    一. 新增Document在索引中增加文档.在index中增加document.ES有自动识别机制.如果增加的document对应的index不存在.自动创建,如果index存在,type不存在自动创 ...

  4. Elastic Search笔记

    目录 1.简介 2.概念和工具使用 2.1 基本概念 2.2 使用kibana 3.操作索引和数据 2.3 索引 2.4 索引映射到文档 2.5 新增数据 2.6 修改数据 2.7 删除数据 4. 搜 ...

  5. 分库分表后跨分片查询与Elastic Search

    携程酒店订单Elastic Search实战:http://www.lvesu.com/blog/main/cms-610.html 为什么分库分表后不建议跨分片查询:https://www.jian ...

  6. elastic search文档详解

    在elastic search中文档(document)类似于关系型数据库里的记录(record),类型(type)类似于表(table),索引(index)类似于库(database). 文档一定有 ...

  7. tpot从elastic search拉攻击数据之二 配置端口映射

    虽然知道了本地的数据接口位置,但是我们需要的是从远程拉取数据,所以我们需要更改es的ip端口为0.0.0.0:xxxx. 直接修改下图的elasticsearch.yml配置文件,结果发现无效. 这是 ...

  8. Elastic Search快速上手(2):将数据存入ES

    前言 在上手使用前,需要先了解一些基本的概念. 推荐 可以到 https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.htm ...

  9. Elastic Search对Document的搜索

    在ES中使用的重点.ES中存储的数据.核心就是为了提供全文搜索能力的.搜索功能非常重要.多练. 1 query string searchsearch的参数都是类似http请求头中的字符串参数提供搜索 ...

随机推荐

  1. Innodb内存结构

      聚集索引与非聚集索引: 聚集索引:主键,有序,存储顺序与内存一致 非聚集索引:非主键,无序 聚集索引在叶子节点存储的是表中的数据 非聚集索引在叶子节点存储的是主键和索引列 使用非聚集索引查询出数据 ...

  2. react-redux学习初步总结

    1.index.js文件中需要引入 a.React(把jsx编译到js需要调用一个函数, 这个函数在React叫React.createElement. 解答地址:https://segmentfau ...

  3. HTTP之Cookie和Session

    1. Cookie 1.1 为什么需要 Cookie? HTTP 协议是一种无状态的协议,也就是说,当前的 HTTP 请求与以前的 HTTP 请求没有任何联系.显然,这种无状态的情形在某些时候将让用户 ...

  4. FreeMarker学习(常用表达式)

    直接指定值 字符串: "Foo" 或者 'Foo' 或者 "It's \"quoted\"" 或者 'It\'s "quoted& ...

  5. P3146 [USACO16OPEN]248

    P3146 [USACO16OPEN]248 题解 第一道自己码出的区间DP快庆祝一哈 2048 每次可以合并任意相邻的两个数字,得到的不是翻倍而是+1 dp[L][R] 区间 L~R 合并结果 然后 ...

  6. js实现简单的文件上传

    文件下载:https://www.cnblogs.com/xiaomili/p/10521160.html  html: <form name="form1" id=&quo ...

  7. Sklearn-train_test_split随机划分训练集和测试集

    klearn.model_selection.train_test_split随机划分训练集和测试集 官网文档:http://scikit-learn.org/stable/modules/gener ...

  8. Java对象和集合的拷贝/克隆/复制

    昨天同事遇到了一个奇怪的问题,他需要将一个JavaBean拷贝一份,然后对新创建的Bean进行操作.但是他对新的Bean操作后,会影响旧的Bean的值.当听到这个问题的时候,我第一反应就是他的拷贝方法 ...

  9. 小D课堂 - 新版本微服务springcloud+Docker教程_5-01分布式核心知识之熔断、降级

    笔记: 第五章 互联网架构服务降级熔断 Hystrix 实战 1.分布式核心知识之熔断.降级讲解     简介:系统负载过高,突发流量或者网络等各种异常情况介绍,常用的解决方案 1.熔断:       ...

  10. Arrays.asList()使用指南

    简介 Arrays.asList()在平时开发中还是比较常见的,我们可以使用它将一个数组转换为一个List集合. String[] myArray = { "Apple", &qu ...