Elasticsearch(5)实践一-数据添加

来源:互联网 发布:python library api 编辑:程序博客网 时间:2024/06/03 23:39

  • 导语
  • 需求提出
  • 建立员工索引文件
    • 实践
      • 1为员工目录添加第一个员工信息
      • 添加第二个员工信息到员工目录
      • 添加第三个员工信息到员工目录
  • 结语

导语

本文将介绍如何将对象加入到Elasticsearch中,以便后面的检索语法学习。

需求提出

我们为Megacorp工作,而且作为”We love our drones!”的HR新发起项目的一份子,被告知要创建一个员工目录。这个目录应该使得老板感到轻松而且实时、协同、动态协作,所以它有一些业务需求如下:

  • 使数据包含多值标签,数字,和全文。
  • 允许结构化搜索,如发现30岁以上的员工。
  • 允许简单的全文搜索和更复杂的短语搜索。
  • 返回突出显示搜索的文本片段匹配的文档。
  • 使管理人员可以在数据上构建数据分析仪表盘。

    建立员工索引文件

    该订单的第一个任务是存储雇员数据。这将采取一个员工文档的形式:一个文档代表了一个员工。存储数据的行为在Elasticsearch叫做索引,但索引文件之前,我们需要决定在哪里存储它。

    一个Elasticsearch集群可以包含多个指标(索引),进而包含多个类型。这些类型保存多个文档,每个文档都有多个字段。

    默认情况下,文档中的每个索引字段(有一个反向索引),因此是可搜索的。没有反向索引的字段是不能搜索。Elasticsearch 和 Lucene 为了提供数据检索能力,均采取反向索引的方式。

对于我们的员工目录,我们要做到以下几点:

  • 为每个员工建立索引文档,其中包含一个员工的所有信息。
  • 每一个文档都是employee类型。
  • 这种类型将保存在megacorp的索引中。
  • 此索引将驻留在我们Elasticsearch集群中。

实际上,这是很容易的(即使它看起来像很多步骤)。我们可以用一个命令去命令执行这些操作:

PUT /megacorp/employee/1{    "first_name" : "John",    "last_name" :  "Smith",    "age" :        25,    "about" :      "I love to go rock climbing",    "interests": [ "sports", "music" ]}

这个请求体是JSON文档,包含对该员工的所有信息。他的名字是约翰·史密斯,他25岁,喜欢攀岩。

值得注意的是,路径/megacorp/employee/1包含三个信息:

这里写图片描述

实践

1、为员工目录添加第一个员工信息

在sence中,输入如下的curl请求代码

curl -XPUT 'localhost:9200/megacorp/employee/1?pretty' -d'{    "first_name" : "John",    "last_name" :  "Smith",    "age" :        25,    "about" :      "I love to go rock climbing",    "interests": [ "sports", "music" ]}'

如下图所示:
这里写图片描述

是不是很简单!没有必要先执行任何管理任务,如创建索引或指定每个字段包含的数据类型。我们可以直接索引文档。Elasticsearch附带所有的缺省设置,所以所有必要的管理任务在后台被照顾,使用默认值。

在继续之前,让我们添加更多的员工目录:

添加第二个员工信息到员工目录

在sence中,输入如下的curl请求代码

curl -XPUT 'localhost:9200/megacorp/employee/2?pretty' -d'{    "first_name" :  "Jane",    "last_name" :   "Smith",    "age" :         32,    "about" :       "I like to collect rock albums",    "interests":  [ "music" ]}'

如下图所示:
这里写图片描述

添加第三个员工信息到员工目录

在sence中,输入如下的curl请求代码

curl -XPUT 'localhost:9200/megacorp/employee/3?pretty' -d'{    "first_name" :  "Douglas",    "last_name" :   "Fir",    "age" :         35,    "about":        "I like to build cabinets",    "interests":  [ "forestry" ]}'

如下图所示:
这里写图片描述

结语

本文讲述了如果添加文档对象数据,以json的格式进行添加。下次的文章,将会介绍如何进行检索。

1 0
原创粉丝点击