ts2009 发表于 2019-1-29 07:36:18

elasticsearch简介

  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"
  }
  }
  }
  




页: [1]
查看完整版本: elasticsearch简介