码迷,mamicode.com
首页 > 其他好文 > 详细

elasticsearch简介

时间:2015-11-19 19:17:34      阅读:147      评论:0      收藏:0      [点我收藏+]

标签: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

elasticsearch简介

标签:elk

原文地址:http://9425473.blog.51cto.com/9415473/1714741

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!