首先要讲什么是文档,我们中大多是java程序员,java是面向对象的,那么在elasticsearch看来:对象和文档是等价的。只不过这个对象是可以被序列化成key-value形式的json串
文档元数据:
文档是用来以k-v的形式存储数据的,文档的组成不单单是有数据的,还有元数据;
其中三个元数据是必须记住的:
节点 | 说明 |
---|---|
_index | 索引(文档存储的地方) |
_type | 文档存储的类型 |
_id | 文档的唯一标识 |
当然还有其他的元数据信息,这些信息我们需要在后面的课程中介绍,但是暂时必须记住的,就是上面的三个
3.1:es的curl命令行操作
curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求。简单的认为是可以在命令行下面访问url的一个工具。在centos的默认库里面是有curl工具的,如果没有请yum安装即可。
curl
-X 指定http的请求方法 有HEAD GET POST PUT DELETE
-d 指定要传输的数据
-H 指定http请求头信息
curl创建索引库
curl -XPUT http://<ip>:9200/index_name/
PUT或POST都可以创建
3.1: 使用curl创建一个索引
curl -XPUT http://hadoop01:9200/blog01/
3.2:使用curl插入一个文档
curl -XPUT http://hadoop01:9200/blog01/article/1 -d '{"id": "1", "title": " What is lucene"}'
3.3:使用curl查看文档
curl -XGET "http://hadoop01:9200/blog01/article/1"
3.4:使用curl更新文档
curl -XPUT http://hadoop01:9200/blog01/article/1 -d '{"id": "1", "title": " What is elasticsearch"}'
3.5:使用curl搜索文档
curl -XGET "http://hadoop01:9200/blog01/article/_search?q=title:'elasticsearch'"
返回字段中需要我们知道的信息:
返回结果中最重要的部分是 hits ,它包含 total 字段来表示匹配到的文档总数,并且一个 hits 数组包含所查询结果的前十个文档。
在 hits 数组中每个结果包含文档的 _index 、 _type 、 _id ,加上 _source 字段。
这意味着我们可以直接从返回的搜索结果中使用整个文档。这不像其他的搜索引擎,仅仅返回文档的ID,需要你单独去获取文档。
每个结果还有一个 _score ,它衡量了文档与查询的匹配程度。
默认情况下,首先返回最相关的文档结果,就是说,返回的文档是按照 _score 降序排列的。在这个例子中,我们没有指定任何查询,故所有的文档具有相同的相关性,因此对所有的结果而言 1 是中性的 _score 。
max_score 值是与查询所匹配文档的 _score 的最大值。
took
took
值告诉我们执行整个搜索请求耗费了多少毫秒
Shard
_shards
部分 告诉我们在查询中参与分片的总数,以及这些分片成功了多少个失败了多少个。
timeout
timed_out
值告诉我们查询是否超时。默认情况下,搜索请求不会超时。
3.6:使用curl删除文档
curl -XDELETE "http://hadoop01:9200/blog01/article/1"
3.7:使用curl删除索引
curl -XDELETE "http://hadoop01:9200/blog01"