检索文档(Retrieving documents)

我们已经有文档存储在我们的实例。现在,让我们尝试检索它们:

 curl -XGET http://localhost:9200/blog/article/1

然后服务器返回以下响应:

 {
"_index" : "blog", "_type" : "article",
"_id" : "1",
"_version" : 1,
"exists" : true,
"_source" : {
"title": "New version of Elastic Search released!",
"content": "...",
"tags": ["announce", "elasticsearch", "release"]
}

在响应中,除了索引、类型、标识和版本,我们还看到文档被找到的信息以及文档源。如果文档没有找到,我们得到的响应如下:

 {
"_index" : "blog",
"_type" : "article",
"_id" : "9999",
"exists" : false
}

当然,没有关于版本和文档源的信息。

更新文档(Updating documents)

更 新文档的索引是一个更加复杂的任务。在内部,ElasticSearch心须获取文档,从_source字段移除旧的文档,应用变更并且索引它作为一个新 文档。ElasticSearch通过给定一个script参数来实现。这允许我们做比简单的字段改变更复杂的文档转换。让我们看看在一个简单的案例中它 是如何工作的:

然后执行下面的命令:

 curl -XPOST http://localhost:9200/blog/article/1/_update

 -d '{
"script": "ctx._source.content = \"new content\""
}'

服务器响应如下:

 {

 "ok":true,

 "_index":"blog",

 "_type":"article",

 "_id":"1",

 "_version":2

 }

凑效了!的确,让我们检索当前文档:

 curl -XGET http://localhost:9200/blog/article/1

 {
"_index" : "blog", "_type" : "article",
"_id" : "1",
"_version" : 2,
"exists" : true,
"_source" : {
"title":"New version of Elastic Search released!",
"content":"new content",
"tags":["announce","elasticsearch","release"]}
}

服务器改变了我们的文章内容和文档的版本号。请注意,我们没有发送整个文档,仅仅改变了部分。但是请记住使用更新的功能,我们需要使用_source字段-我们在第三章将描述如何使用_source字段扩展你的索引结构的附加内部信息部分、扩展你的结构和搜索。

还有一件事是关于文档更新-如果你的脚本从文档使用一个字段值即被更新。如果文档没有价值,你可以用来设置一个值。例如,如果你想增加文档的计数器字段并且它不存在,您可以在您的请求中使用upsert提供默认值。例如:

 curl -XPOST http://localhost:9200/blog/article/1/_update

 -d '{
"script": "ctx._source.counter += 1",
"upsert": {
"counter" : 0
} }'

在前面的例子中,如果我们更新的文档没有计数器字段,0的值将被使用。

删除文档(Deleting documents)

我们已经看到如何创建(PUT)和检索(GET)文档。可以以类似的方式删除一个文档,但唯一的区别是在动词的使用。让我们执行以下删除命令:

 curl -XDELETE http://localhost:9200/blog/article/1
{ "ok":true, "found":true, "_index":"blog", "_type":"article", "_id":"1", "_version":1 }

现在我们可以使用CRUD操作。这使我们能够使用ElasticSearch作为一个简单的键值存储来创建应用程序。但这只是开始!

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

  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. POJ1276Cash Machine

    http://poj.org/problem?id=1276 题意 : 给你一个目标钱数,再给你钱币的种数和钱币的面值,让你用这些钱凑出不大于目标钱数的钱然后输出这个最接近且不大于目标钱数的钱. 思路 ...

  2. s.charAt()

    public class ish{public static void main(String[]args){ String s="call me ishmae";System.o ...

  3. Debug模式应用程序输出Debug调试信息(现成的宏定义,用于格式化打印信息)

    // Debug模式,主要输出一些调试的信息. #ifdef UNICODE #define _FILE_          _STR2WSTR(__FILE__) #define _FUNCTION ...

  4. JavaScript基础精华01(变量,语法,数据类型)

    JavaScript是一种脚本语言. 脚本,一条条的文字命令.执行时由系统的一个解释器,将其一条条的翻译成机器可识别的指令,然后执行 JavaScript基本组成 1.基本语法(浏览器基本都支持,有统 ...

  5. Linux 动画显示

    Linux最强大的一个特征就是它有大量的各种小命令工具,这也可以称做是它最有趣的一个地方了.在这些大量的有用的命令和脚本中,你会发现有少部 分命令工具不那么有用的——如果你不愿意说是完全没用处的话.你 ...

  6. 如何写出优秀的研究论文 Chapter 1. How to Write an A+ Research Paper

    This Chapter outlines the logical steps to writing a good research paper. To achieve supreme excelle ...

  7. HTML CSS3 手风琴菜单

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel= ...

  8. Linux 删除文件夹和创建文件的命令

    删除文件夹实例:rm -rf /var/log/httpd/access将会删除/var/log/httpd/access目录以及其下所有文件.文件夹 删除文件使用实例: rm -f /var/log ...

  9. Mybatis中配置Mapper的方法

    在这篇文章中我主要想讲一下Mybatis配置文件中mappers元素的配置.关于基础部分的内容可以参考http://haohaoxuexi.iteye.com/blog/1333271. 我们知道在M ...

  10. VS2012 professional和VS2012 Ultimate的区别

    http://www.c-sharpcorner.com/news/1750/visual-studio-2012-editions-comparison.aspx http://karthikdod ...