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权威指南
》