一、es中文档的元数据包括:

1、_index:

索引(index)类似于关系型数据库里的数据库(database),事实上,我们的数据被存储和索引在分片(shards)中,索引知识把一个或多个分片分组在一起的逻辑空间,

索引名字必须全部小写,不能以下划线开头,不能包含逗号。

2、_type:

类型(type)类似于关系型数据库中的table,在es中我们用type表示相同的‘事务’,每个类型(type)都有自己的映射(mapping)或者结构定义,就像传统数据库表中的列一样。所有类型下的文档被存储在同一个
索引下,但是类型的映射(mapping)会告诉Elasticsearch不同的文档如何被索引。

_type  的名字可以是大写或小写,不能包含下划线或逗号。

3、_id:

id仅仅是一个字符串,它与_index和_type组合时,就可以在es中唯一标识一个文档,当创建一个文档,你可以自定义 _id  ,也可以让Elasticsearch帮你自动生成。

二、如何索引一个文档

1、自定义id

如果你的文档有自然的标识符(例如 user_account  字段或者其他值表示文档),你就可以提供自己的 _id  ,使用这种形式
的 index  API:

PUT /{index}/{type}/{id}
{
"field": "value",
...
}
响应
{
"_index": "...",
"_type": "...",
"_id": "...",
"_version": 1,
"created": true
}

 响应指出请求的索引已经被成功创建,这个索引中包含 _index  、 _type  和 _id  元数据,以及一个新元素: _version  。
Elasticsearch中每个文档都有版本号,每当文档变化(包括删除)都会使 _version  增加。

2、自增id

如果我们的数据没有自然ID,我们可以让Elasticsearch自动为我们生成。请求结构发生了变化: PUT  方法—— “在这个URL中存
储文档”  变成了 POST  方法—— "在这个文档下存储文档"  。

URL现在只包含 _index  和 _type  两个字段:

POST /{index}/{type}/
{
"title": "...",
"text": "...",
"date": "..."
}

  响应内容与刚才类似,只有 _id  字段变成了自动生成的值:

{
"_index": "...",
"_type": "...",
"_id": "wM0OSFhDQXGZAWDf0-drSA",
"_version": 1,
"created": true
}

  自动生成的ID有22个字符长,URL-safe, Base64-encoded string universally unique identifiers, 或者叫 UUIDs。

来自 https://blog.csdn.net/qq_40651753/article/details/86006446

es中的相关知识一(基本知识和id的定义)的更多相关文章

  1. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework中web相关的知识(概述)

    Spring Framework中web相关的知识 1.概述: 参考资料:官网documentation中第22小节内容 关于spring web mvc:  spring framework中拥有自 ...

  2. 与程序员相关的CPU缓存知识

    本文转载自与程序员相关的CPU缓存知识 基础知识 首先,我们都知道现在的CPU多核技术,都会有几级缓存,老的CPU会有两级内存(L1和L2),新的CPU会有三级内存(L1,L2,L3 ),如下图所示: ...

  3. 【转载】Python编程中常用的12种基础知识总结

    Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...

  4. Python编程中常用的12种基础知识总结

    原地址:http://blog.jobbole.com/48541/ Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时 ...

  5. SQL Server中的TempDB管理——TempDB基本知识(为什么需要版本存储区)

    原文:SQL Server中的TempDB管理--TempDB基本知识(为什么需要版本存储区) 参考资料来自: http://blogs.msdn.com/b/sqlserverstorageengi ...

  6. react组件中的constructor和super小知识

    react组件中的constructor和super小知识 1.react中用class申明的类一些小知识 如上图:类Child是通过class关键字申明,并且继承于类React. A.Child的类 ...

  7. C#中Abstract和Virtua笔记,知识

    在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别.二者都牵涉到在派生类中与override的配合使用. 一.Virtual方法(虚方法) virtual ...

  8. 【前端知识体系-JS相关】JS基础知识总结

    1 变量类型和计算 1.1 值类型和引用类型的区别? 值类型:每个变量都会存储各自的值.不会相互影响 引用类型:不同变量的指针执行了同一个对象(数组,对象,函数) 1.2 typeof可以及检测的数据 ...

  9. Elasticsearch入门必备——ES中的字段类型以及常用属性

    使用Elasticsearch时,了解字段的概念,是必不可少的.毕竟无论是es还是传统的数据库,都无法弱化字段的类型. 背景知识 在Es中,字段的类型很关键: 在索引的时候,如果字段第一次出现,会自动 ...

随机推荐

  1. EMC DS300B光纤交换机扩展光口license

    一.通过EMC指定的网站激活license 激活license,生成激活码需要三个信息: 1.交换机WWN号:可在交换机铭牌上查看:(16位) 2.SN号码:AQA00***9*6(11位) 3.ke ...

  2. IDEA注释模板

    (1)Getter和Setter 生成代码的同时注释 添加新模板 输入模板生产代码: 其实就是InteliJ Default默认模板上面我们添加了生产注释,Getter的生成代码就是默认模板的. Ge ...

  3. 第34课.数组操作符的重载("[]"重载)

    1.问题:string类对象还具备c方式字符串的灵活性吗?还能直接访问单个字符吗? 答案:可以按照c字符串的方式使用string对象 string s = "a1b2c3d4e"; ...

  4. Django-filter报错:__init__() got an unexpected keyword argument 'name'

    原因是 自从 django-filter2.0之后 将Filter的name字段 更名为 field_name 所以需要这样写: class GoodsFilter(filters.FilterSet ...

  5. HashMap集合-遍历方法

    # HashMap集合-遍历方法 先定义好集合: public static void main(String[] args) { Map<String,String> onemap=ne ...

  6. superset部署

    superset功能概述: 丰富的数据可视化集 易于使用的界面,用于探索和可视化数据 创建和共享仪表板 与主要身份验证提供程序集成的企业级身份验证(通过Flask AppBuilder进行数据库,Op ...

  7. 数据结构 -- 队列Queue

    一.队列简介 定义 队列(queue)在计算机科学中,是一种先进先出的线性表. 它只允许在表的前端进行删除操作,而在表的后端进行插入操作.进行插入操作的端称为队尾,进行删除操作的端称为队头.队列中没有 ...

  8. Pygame小游戏练习三

    @Python编程从入门到实践 Python项目练习 七.创建Passenger类 创建passenger.py文件,创建Passenger类,控制乘客属性和行为 # passenger.py imp ...

  9. 【第一季】CH05_FPGA设计Verilog基础(二)Enter a post title

    [第一季]CH05_FPGA设计Verilog基础(二) 5.1状态机设计 状态机是许多数字系统的核心部件,是一类重要的时序逻辑电路.通常包括三个部分:一是下一个状态的逻辑电路,二是存储状态机当前状态 ...

  10. cygwin gcc 编译windowsAPI 报错的一个解决方案

    一开始按照linux的习惯去编译一个使用了windowsAPI的程序 结果提示: $ i686-pc-cygwin-g++ screen_catch.cscreen_catch.c: In funct ...