Elasticsearch-如何识别一篇文档
ES-识别文档
为了识别同一个索引中的某篇文档,ES使用_uid中的文档类型和ID结合体。_uid字段是由_id和_type字段组成,当搜索或者检索文档的时候总是能获得这两项信息。
FengZhendeMacBook-Pro:cv FengZhen$ curl -XGET 'localhost:9200/music/album/5?pretty&fields'
{
"_index" : "music",
"_type" : "album",
"_id" : "",
"_version" : ,
"found" : true
}
由于所有的文档都位于同一个Lucene的索引中,ES内部使用_uid来唯一确定文档的身份。类型和ID的分离是一种抽象,通过类型的区分使得针对不同结构的运作更为容易。正是因为如此,_id通常从_uid抽取出来,但是_type必须单独索引,这样当搜索特定类型时,系统才能轻松地根据类型来过滤文档。
_uid:
是否存储:yes
是否索引:yes
描述:用于识别整个索引中的某篇文档
_id:
是否存储:no
是否索引:no
描述:该字段没有被索引,也没有被存储。如果搜索他,实际上是用的是_uid。当获得了结果,也同样是从_uid抽取内容。
_type:
是否存储:no
是否索引:no_analyzed
描述:该字段是被索引的,并且生成一个单一的词条。ES用它来过滤指定类型的文档。也可以搜索这个字段
1. 为文档提供ID
(1) 手动指定
目前为止,多数是通过URI的一部分来手动提供ID。例如,为了索引ID为1st的文档,运行类似下面的命令
FengZhendeMacBook-Pro:cv FengZhen$ curl -XPUT 'localhost:9200/get-together/manual_id/1st?pretty' -d '{
> "name":"Elasticsearch Denver"
> }'
{
"_index" : "get-together",
"_type" : "manual_id",
"_id" : "1st",
"_version" : ,
"_shards" : {
"total" : ,
"successful" : ,
"failed" :
},
"created" : true
}
(2) ES自动生成
可以依靠ES来生成唯一的ID。如果尚无唯一的ID,或者没有必要通过某种特定的属性来识别文档,这一点就很有帮助。通常而言,当索引应用程序的日志时,会这么做:这些数据没有唯一的属性来识别它们,而且它们也从不会被更新。
为了让ES生成ID,使用HTTP POST请求并省去ID
FengZhendeMacBook-Pro:cv FengZhen$ curl -XPOST 'localhost:9200/logs/auto_id/?pretty' -d '{
> "message":"test es auto id"
> }'
{
"_index" : "logs",
"_type" : "auto_id",
"_id" : "AWut3pFctSp-KrHOt_--",
"_version" : ,
"_shards" : {
"total" : ,
"successful" : ,
"failed" :
},
"created" : true
}
可以看到自动回复中的ID:AWut3pFctSp-KrHOt_--
2. 在文档中存储索引名称
除了ID和类型,为了让ES在文档中存储索引的名称,可以使用_index字段。和_id、_type一样,可以在搜索或者是GET请求的结果中看到_index,它也不是来源于字段的内容。
ES知道每个结果来自哪个索引,所以它可以展示_index的值
FengZhendeMacBook-Pro:cv FengZhen$ curl 'localhost:9200/_search?q=_index:get-together&pretty'
{
"took" : 3,
"timed_out" : false,
"_shards" : {
"total" : 25,
"successful" : 25,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 1.0,
"hits" : [ {
"_index" : "get-together",
"_type" : "manual_id",
"_id" : "1st",
"_score" : 1.0,
"_source" : {
"name" : "Elasticsearch Denver"
}
} ]
}
}
Elasticsearch-如何识别一篇文档的更多相关文章
- R︱Softmax Regression建模 (MNIST 手写体识别和文档多分类应用)
本文转载自经管之家论坛, R语言中的Softmax Regression建模 (MNIST 手写体识别和文档多分类应用) R中的softmaxreg包,发自2016-09-09,链接:https:// ...
- Elasticsearch 7.x文档基本操作(CRUD)
官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html 1.添加文档 1.1.指定文档ID PUT ...
- elasticsearch 基础 —— 分布式文档存储原理
路由一个文档到一个分片中 当索引一个文档的时候,文档会被存储到一个主分片中. Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?当我们创建文档时,它如何决定这个文档应当被存储在分片 ...
- 关于Elasticsearch单个索引文档最大数量问题
因为ElasticSearch是一个基于Lucene的搜索服务器.Lucene的索引有个难以克服的限制,导致Elasticsearch的单个分片存在最大文档数量限制,一个索引分片的最大文档数量是20亿 ...
- ElasticSearch核心概念和文档的CRUD
目录 1. 基本概念 1.1 Node 与 Cluster 1.2 Index 1.3 Document 1.4 Type(将在ES6.0移除) 2. 数据的增删改查 2.1 添加数据 2.2 查询数 ...
- elasticsearch 官方监控文档 老版但很有用
https://zhaoyanblog.com/page/1?s=elasticsearch 监控每个节点(jvm部分) 操作系统和进程部分 操作系统和进程部分的含义是很清楚的,这里不会描述的很详细. ...
- Elasticsearch操作Document文档
1.利用客户端操作Document文档数据 1.1 创建一个文档(创建数据的过程,向表中去添加数据) 请求方式:Post 请求地址:es所在IP:9200/索 ...
- 【Elasticsearch学习】文档搜索全过程
在ES执行分布式搜索时,分布式搜索操作需要分散到所有相关分片,若一个索引有3个主分片,每个主分片有一个副本分片,那么搜索请求会在这6个分片中随机选择3个分片,这3个分片有可能是主分片也可能是副本分片, ...
- 5.ElasticSearch系列之文档的基本操作
1. 文档写入 # create document. 自动生成 _id POST users/_doc { "user" : "shenjian", " ...
随机推荐
- Ubuntu 保存文件时报E212
命令输入: vim test/conf.conf 出现如下报错: 步骤一: 没有足够的权限!使用如下代码尝试: :w !sudo tee % > /dev/null 如果步骤一没有解决问题,尝 ...
- Swoole:PHP7安装Swoole的步骤
下载 swoole 首先下载swoole的源码包,这个操作很简单,没有太多说的.(没有wget:brew install wget--mac) wget -c https://github.com/s ...
- springboot读取配置信息、环境变量
2.读取配置文件 2.1 读取核心配置文件 核心配置文件是指在resources根目录下的application.properties或application.yml配置文件,读取这两个配置文件的方法 ...
- Android 内存 - 获取单个应用内存限制
方法一: adb shell getprop | grep dalvik.vm.heapgrowthlimit [dalvik.vm.heapgrowthlimit]: [64m] 方法二: Acti ...
- Android NDK加载SD卡中的so
最近公司框架刚移植完成,由于框架程序要调用子程序,每个子程序都是一个so文件,有好几百个,把所有的so和apk打包不现实,及时可以升级维护也很麻烦.所以需要放SD卡中.考虑两种方式 1 放到设备中的 ...
- Spring Boot教程(三十三)使用Redis数据库(1)
Spring Boot中除了对常用的关系型数据库提供了优秀的自动化支持之外,对于很多NoSQL数据库一样提供了自动化配置的支持,包括:Redis, MongoDB, Elasticsearch, So ...
- docker的数据管理
容器中管理数据主要有两种方式: 1.数据卷:容器内数据直接映射到本地宿主机. 2.数据卷容器:使用特定容器维护数据卷 数据卷: 数据卷是一个可供容器使用的特殊目录,他将主机操作系统目录直接映射进容器. ...
- BZOJ刷题列表【转载于hzwer】
沿着黄学长的步伐~~ 红色为已刷,黑色为未刷,看我多久能搞完吧... Update on 7.26 :之前咕了好久...(足见博主的flag是多么emmm......)这几天开始会抽时间刷的,每天几道 ...
- NetScaler VPX configration
境搭建概述 本文主要介绍Netscaler的安装配置,以及与StoreFront相结合,实现外网访问内网资源.当用户访问时,Netscaler Gateway Virtual Server将把请求转给 ...
- Django入门------常见问题
项目启动后仅本机可访问 1.修改 Django项目中的settings.py中的 ALLOWED_HOSTS 的值为 ['*']# 准许那些地址访问,* 表示任意地址ALLOWED_HOSTS = [ ...