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

导语

本文将介绍如何将对象加入到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的格式进行添加。下次的文章,将会介绍如何进行检索。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YuYunTan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值