创建一个新文档(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. ORA-04052\ ORA-00604\ORA-12154

    ORA-04052: error occurred when looking up remote object TBCS.SUBS_PRIVILEGE@DD2A ORA-00604: error oc ...

  2. lintcode: 二叉树的锯齿形层次遍历

    题目 二叉树的锯齿形层次遍历 给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行) 样例 给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ ...

  3. lintcode:First Missing Positive 丢失的第一个正整数

    题目 丢失的第一个正整数 给出一个无序的整数数组,找出其中没有出现的最小正整数. 样例 如果给出 [1,2,0], return 3 如果给出 [3,4,-1,1], return 2 挑战 只允许时 ...

  4. 【nginx网站性能优化篇(2)】反向代理实现Apache与Nginx的动静分离(LNMPA)

    为什么要使用反向代理 具体请参考这篇博文:[Linux常识篇(1)]所谓的正向代理与反向代理 在虚拟机上配置反向代理的步骤 首先假设你已经假设好了LNMP架构了,这时我们还要安装Apache和php, ...

  5. Hibernate逍遥游记-第8章 映射组成关系(<component>、<parent>)

    一. 1. <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate ...

  6. Android 拦截短信

    public class SMSMess extends BroadcastReceiver { @Override public void onReceive(Context arg0, Inten ...

  7. (转)MyEclipse +Servlet

    来自:http://www.cnblogs.com/sunada2005/p/3520788.html 在Win7系统下运行自己的第一个Servlet程序,因为有时候配置不当或系统原因可能会运行不成功 ...

  8. 转Unity 异常操作

    摘要 使用 unity 处理异常的方法可能会与你的直觉不符.本文将给出正确的处理方法,并简单剖析Unity这部分源代码. 处理异常 打算用Unity的AOP截获未处理的异常,然后写个日志什么的,于是我 ...

  9. How to learn linux device driver

    To learn device driver development, like any other new knowledge, the bestapproach for me is to lear ...

  10. IOS代码

    //// MJViewController.m// UITableView-编辑模式//// Created by mj on 13-4-11.// Copyright (c) 2013年 itcas ...