标签:elk
Elasticsearch是 面向文档型数据库,这意味着它存储的是整个对象或者 文档,它不但会存储它们,还会为他们建立索引,这样你就可以搜索他们了。你可以在 Elasticsearch 中索引、搜索、排序和过滤这些文档。不需要成行成列的数据。
所以为了创建员工名单,我们需要进行如下操作:
为每一个员工的 文档 创建索引,每个 文档 都包含了一个员工的所有信息。
每个文档都会被标记为 employee 类型。
这种类型将存活在 megacorp 这个 索引 中。
这个索引将会存储在 Elasticsearch 的集群中
注意在 /megacorp/employee/1 路径下,包含了三个部分:
名字 内容
megacorp 索引的名字
employee 类型的名字
1 当前员工的ID
PUT /megacorp/employee/1
{
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
现在,我们已经在 Elasticsearch 中存储了一些数据,我们可以开始根据这个项目的需求进行工作了。第一个需求就是要能搜索每一个员工的数据。
对于 Elasticsearch 来说,这是非常简单的。我们只需要执行一次 HTTP GET 请求,然后指出文档的地址,也就是索引、类型以及 ID 即可。通过这三个部分,我们就可以得到原始的 JSON 文档:
GET /megacorp/employee/1
返回的内容包含了这个文档的元数据信息,而 John Smith 的原始 JSON 文档也在 _source 字段中出现了:
{
"_index" : "megacorp",
"_type" : "employee",
"_id" : "1",
"_version" : 1,
"found" : true,
"_source" : {
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
}
全文搜索
上面的搜索都很简单:名字搜索、通过年龄过滤。接下来我们来学习一下更加复杂的搜索,全文搜索——一项在传统数据库很难实现的功能。 我们将会搜索所有喜欢 rock climbing 的员工:
GET /megacorp/employee/_search
{
"query" : {
"match" : {
"about" : "rock climbing"
}
}
}
本文出自 “dba天空” 博客,请务必保留此出处http://9425473.blog.51cto.com/9415473/1714741
标签:elk
原文地址:http://9425473.blog.51cto.com/9415473/1714741