原文地址: https://www.elastic.co/guide/cn/elasticsearch/guide/current/_indexing_employee_documents.html, 版权归 www.elastic.co 所有
英文版地址: https://www.elastic.co/guide/en/elasticsearch/guide/current/_indexing_employee_documents.html
英文版地址: https://www.elastic.co/guide/en/elasticsearch/guide/current/_indexing_employee_documents.html
请注意:
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。
本书基于 Elasticsearch 2.x 版本,有些内容可能已经过时。
索引员工文档edit
第一个业务需求是存储员工数据。 这将会以 员工文档 的形式存储:一个文档代表一个员工。存储数据到 Elasticsearch 的行为叫做 索引(indexing) ,但在索引一个文档之前,需要确定将文档存储在哪里。
一个 Elasticsearch 集群可以 包含多个 索引(indices) ,相应的每个索引可以包含多个 类型 。 这些不同的类型存储着多个 文档 ,每个文档又有 多个 属性 。
对于员工目录,我们将做如下操作:
- 每个员工索引一个文档,包含该员工的所有信息。
-
每个文档都将是
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" ] }
注意,路径 /megacorp/employee/1
包含了三部分的信息:
-
megacorp
- 索引名称
-
employee
- 类型名称
-
1
- 特定雇员的ID
请求体 — JSON 文档 — 包含了这位员工的所有详细信息,他的名字叫 John Smith ,今年 25 岁,喜欢攀岩。
很简单!无需首先执行任何管理任务,比如创建一个索引或指定每个字段的数据类型之类的。可以直接索引一个文档。Elasticsearch 附带了所有默认值,因此所有必需的管理任务都在后台使用默认设置完成。
进行下一步之前,让我们增加更多的员工信息到目录中:
PUT /megacorp/employee/2 { "first_name" : "Jane", "last_name" : "Smith", "age" : 32, "about" : "I like to collect rock albums", "interests": [ "music" ] } PUT /megacorp/employee/3 { "first_name" : "Douglas", "last_name" : "Fir", "age" : 35, "about": "I like to build cabinets", "interests": [ "forestry" ] }