创建一个新文档(Creating a new document)

现在我们将尝试索引一些文档。对于我们的示例,让我们想象我们正在为我们的博客建立某种CMS。实体之一是博客的文章。使用JSON记法,在以下的例子中一个文档可以如下所示:

 {
"id": "1",
"title": "New version of Elastic Search released!",
"content": "…",
"priority": 10,
"tags": ["announce", "elasticsearch", "release"]
}

正 如我们所看到的,JSON文档包含一组字段,每个字段可以不同的形式。在我们的例子中,我们有一个数字(priority)、文本(title)和一个字 符串数组(tags)。在接下来的例子中,我们将向您展另一个类型。如前所述,ElasticSearch能猜到这些类型(因为JSON是semi- typed,就是说数字没有引号)并自动在它的内部结构自定义存储数据的方式。

现在我们想将这个记录存储在索引并使其可用于搜索。选择索引名称blog和索引类型article,我们可以通过执行以下命令:

 curl -XPUT http://localhost:9200/blog/article/1
-d '{"title": "New version of Elastic Search released!",
"content": "...",
"tags": ["announce", "elasticsearch", "release"] }'

你可以注意到CURL的新选项-d,这个选项的参数值的文本应该用作请求负载-一个请求体。这样我们可以发送更多的信息,如文档定义。

注意,唯一标识符是放置在URL中而不是请求体中。如果您忽略这个标识符,搜索会返回一个错误,类似如下:

 No handler found for uri [/blog/article/] and method [PUT]

如果一切都是正确的,服务器将用JSON响应,类似于:

 {
"ok":true,
"_index":"blog",
"_type":"article",
"_id":"1",
"_version":1
}

在前面的响应中,ElasticSearch包含操作的状态信息和显示新文档被放置的地方。有文档的唯一标识符和当前版本信息,版本号将由ElasticSearch每次文档自动递增变化。

在 上面的例子中,我们已经指定文档的标识符。但ElasticSearch可以自动生成。这似乎是非常方便的,但是只有当一个索引是唯一的数据源才适用。如 果我们使用一个数据库来存储数据和使用ElasticSearch来全文搜索,同步这些数据将会受阻,除非生成的标识符也是存储在数据库中。通过使用下面 的命令能实现生成一个唯一键。

 curl -XPOST http://localhost:9200/blog/article/ -d
'{"title": "New version of Elastic Search released!",
"content": "...",
"tags": ["announce", "elasticsearch", "release"] }'

注意是POST而不是PUT。参阅前一章REST动词,我们想要改变一个索引列表而不是创建一个新的实体,这就是为什么我们使用POST而不是PUT。服务器的响应应该类似如下:

 {
"ok" : true,
"_index" : "blog",
"_type" : "article",
"_id" : "XQmdeSe_RVamFgRHMqcZQg",
"_version" : 1
}

注意突出显示的行,有一个自动生成的唯一示标识符。

翻译【ElasticSearch Server】第一章:开始使用ElasticSearch集群(6)的更多相关文章

  1. 使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置

    本文简单介绍,使用mod_cluster进行apache httpd server和jboss eap 6.1集群配置.本配置在windows上测试通过,linux下应该是一样的.可能要稍作调整.后面 ...

  2. CentOS6安装各种大数据软件 第四章:Hadoop分布式集群配置

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  3. CentOS6安装各种大数据软件 第六章:HBase分布式集群的配置

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  4. 《Entity Framework 6 Recipes》翻译系列 (1) -----第一章 开始使用实体框架之历史和框架简述

    微软的Entity Framework 受到越来越多人的关注和使用,Entity Framework7.0版本也即将发行.虽然已经开源,可遗憾的是,国内没有关于它的书籍,更不用说好书了,可能是因为EF ...

  5. 《Entity Framework 6 Recipes》翻译系列(2) -----第一章 开始使用实体框架之使用介绍

    Visual Studio 我们在Windows平台上开发应用程序使用的工具主要是Visual Studio.这个集成开发环境已经演化了很多年,从一个简单的C++编辑器和编译器到一个高度集成.支持软件 ...

  6. Elasticsearch学习系列七(Es分布式集群)

    核心概念 集群(Cluster) 一个Es集群由多个节点(Node)组成,每个集群都有一个共同的集群名称作为标识 节点(Node) 一个Es实例就是一个Node.Es的配置文件中可以通过node.ma ...

  7. Elasticsearch 6.x版本全文检索学习之集群调优建议

    1.系统设置要到位,遵照官方建议设置所有的系统参数. https://www.elastic.co/guide/en/elasticsearch/reference/6.7/setup.html 部署 ...

  8. 第十四章 二进制部署k8s集群的平滑升级

    1.软件包下载 去github上下载较新的Kubernetes软件包https://github.com/ 2.升级说明 升级包括master节点升级和node节点的升级,本章升级至v1.15.12: ...

  9. Service Broker应用(2):不同server间的数据传输,包含集群

    不同Server之间的数据传输,包含DB使用AlwaysOn 配置脚本: SQL Server Service Broker 跨集群通信 具体的TSQL 脚本语句如下.注意的是TSQL语句是在发送方还 ...

  10. 使用Rancher Server部署本地多节点K8S集群

    当我第一次开始我的Kubernetes之旅时,我一直在寻找一种设置本地部署环境的方式.很多人常常会使用minikube或microk8s,这两者非常适合新手在单节点集群环境下进行操作.但当我已经了解了 ...

随机推荐

  1. Ubuntu 启动栏添加eclipse图标

    sudo gedit /usr/share/applications/eclipse.desktop [Desktop Entry] Name=Eclipse Comment=c project ma ...

  2. Linux磁盘管理命令

    1.磁盘分割: fdisk [root@linux ~]# fdisk [-l] 装置名称 参数: -l :输出后面接的装置所有的partition内容.若仅有fdisk -l时, 则系统将会把整个系 ...

  3. DOS命令 Net config server Net config workstation

    DOS命令 Net config 作用:显示当前运行的可配置服务,或显示并修改某项服务的设置. 格式:net conifg service options 参数:(1)键入不带参数的net conif ...

  4. Android:让EditText不自动获取焦点

    解决方法: 在EditText的父级控件中加入属性: android:focusable="true" android:focusableInTouchMode="tru ...

  5. Larave 多图片上传

    首先使用Dropzone.js前端组件 {{ HTML::style('css/basic.css');}} {{ HTML::script('js/dropzone.js') }} form部分只需 ...

  6. JDBC学习总结(四)

    JDBC对LOB的读写 在JDBC中提供了java.sql.Blob和java.sql.Clob,两个类分别代表BLOB和CLOB数据.         · BLOB(Binary Large Obj ...

  7. python - PipeMapRed.waitOutputThreads(): subprocess failed with code 1

    hadoop上执行mapreduce streaming python程序报错, 报错详细信息为 python - PipeMapRed.waitOutputThreads(): subprocess ...

  8. netty websocket协议开发

    websocket的好处我们就不用多说了,就是用于解决长连接.服务推送等需要的一种技术. 以下我们来看一个例子: package com.ming.netty.http.websocket; impo ...

  9. C#获取一个文件的扩展名

    C#获取一个文件的扩展名System.IO.Path.GetExtension( "文件名 ");ChangeExtension   更改路径字符串的扩展名. Combine   ...

  10. lightOJ 1172 Krypton Number System(矩阵+DP)

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1172 题意:一个n进制(2<=n<=6)的数字,满足以下条件:(1)至少包 ...