ES-- Elasticsearch入门
| 节点 | 说明 | |
|---|---|---|
_index |
文档存储的地方 |
索引(index)类似于关系型数据库里的“数据库”——它是我们存储和索引关联数据的地方。这个名字必须是全部小写,不能以下划线开头,不能包含逗号。 |
_type |
文档代表的对象的类 | 每个类型(type)都有自己的映射(mapping)或者结构定义,就像传统数据库表中的列一样。所有类型下的文档被存储在同一个索引下,但是类型的映射(mapping)会告诉Elasticsearch不同的文档如何被索引。_type的名字可以是大写或小写,不能包含下划线或逗号。 |
_id |
文档的唯一标识 |
id仅仅是一个字符串,它与 |
程序中大多的实体或对象能够被序列化为包含键值对的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权威指南》

浙公网安备 33010602011771号