ES-- Elasticsearch入门

节点说明 
_index    文档存储的地方

索引(index)类似于关系型数据库里的“数据库”——它是我们存储和索引关联数据的地方。这个名字必须是全部小写,不能以下划线开头,不能包含逗号。

_type   文档代表的对象的类 每个类型(type)都有自己的映射(mapping)或者结构定义,就像传统数据库表中的列一样。所有类型下的文档被存储在同一个索引下,但是类型的映射(mapping)会告诉Elasticsearch不同的文档如何被索引。_type的名字可以是大写或小写,不能包含下划线或逗号。
_id                   

文档的唯一标识

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

 

 

 

 

 

       

 

       程序中大多的实体或对象能够被序列化为包含键值对的JSON对象,键(key)是字段(field)或属性(property)的名字,值(value)可以是字符串、数字、布尔类型、另一个对象、值数组或者其他特殊类型,比如表示日期的字符串或者表示地理位置的对象。

通常,我们可以认为对象(object)和文档(document)是等价相通的。不过,他们还是有所差别:对象(Object)是一个JSON结构体——类似于哈希、hashmap、字典或者关联数组;对象(Object)中还可能包含其他对象(Object)。 在Elasticsearch中,文档(document)这个术语有着特殊含义。它特指最顶层结构或者根对象(root object)序列化成的JSON数据(以唯一ID标识并存储于Elasticsearch中)。

1.GET请求将返回文档的全部,存储在_source参数中。 _source字段,它包含了在创建索引时我们发送给Elasticsearch的原始文档。

GET /website/blog/123?pretty

2.请记住_index、_type、_id三者唯一确定一个文档。所以要想保证文档是新加入的,最简单的方式是使用POST方法让Elasticsearch自动生成唯一_id&oq=请记住_index、_type、_id三者唯一确定一个文档。所以要想保证文档是新加入的,最简单的方式是使用POST方法让Elasticsearch自动生成唯一_id。

POST /website/blog/

{ ... }

3.然而,如果想使用自定义的_id,我们必须告诉Elasticsearch应该在_index、_type、_id三者都不同时才接受请求。

第一种方法使用op_type查询参数:

PUT /website/blog/123?op_type=create
{ ... }

或者第二种方法是在URL后加/_create做为端点:

PUT /website/blog/123/_create
{ ... }

如果请求成功的创建了一个新文档,Elasticsearch将返回正常的元数据且响应状态码是201 Created

另一方面,如果包含相同的_index_type_id的文档已经存在,Elasticsearch将返回409 Conflict响应状态码,错误信息类似如下:

{
  "error" : "DocumentAlreadyExistsException[[website][4] [blog][123]:
             document already exists]",
  "status" : 409
}

 

4.删除文档的语法模式与之前基本一致,只不过要使用DELETE方法:

DELETE /website/blog/123


现在你知道如何把Elasticsearch当作一个分布式的文件存储了。你可以存储、更新、检索和删除它们,而且你知道如何安全的进行这一切。
这确实非常非常有用,尽管我们还没有看到更多令人激动的特性,例如如何在文档内搜索。

参考文档:
Elasticsearch权威指南
posted @ 2017-10-10 11:07  antime  阅读(1011)  评论(0编辑  收藏  举报