curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求。简单的认为是可以在命令行下面访问url的一个工具。在centos的默认库里面是有curl工具的,如果没有请yum安装即可。

curl

-X 指定http的请求方法 有HEAD GET POST PUT DELETE
-d 指定要传输的数据
-H 指定http请求头信息

3.1.1 创建索引

curl -XPUT http://node01:9200/blog01/?pretty

3.1.2 插入文档

前面的命令使用 PUT 动词将一个文档添加到 /article(文档类型),并为该文档分配 ID 为1。URL 路径显示为index/doctype/ID(索引/文档类型/ID)。

curl -XPUT http://node01:9200/blog01/article/1?pretty -d  '{"id": "1", "title": "What is lucene"}'

问题:Content-Type header [application/x-www-form-urlencoded] is not supported

解决:

curl -XPUT http://node01:9200/blog01/article/1?pretty -d  '{"id": "1", "title": "What is lucene"}' -H "Content-Type: application/json"

原因:

此原因时由于ES增加了安全机制, 进行严格的内容类型检查,严格检查内容类型也可以作为防止跨站点请求伪造攻击的一层保护。 官网解释

http.content_type.required

3.1.3 查询文档

curl -XGET "http://node01:9200/blog01/article/1?pretty" -H "Content-Type: application/json"

3.1.4 更新文档

curl -XPUT http://node01:9200/blog01/article/1?pretty -d  '{"id": "1", "title": " What is elasticsearch"}' -H "Content-Type: application/json"

3.1.5 搜索文档

curl -XGET "http://node01:9200/blog01/article/_search?q=title:'elasticsearch'&pretty" -H "Content-Type: application/json"

3.1.6 删除文档

curl -XDELETE "http://node01:9200/blog01/article/1?pretty"

3.1.7 删除索引

curl -XDELETE "http://node01:9200/blog01?pretty"

3.3 返回值说明

3.3.1 Hits

返回结果中最重要的部分是 hits ,它包含 total 字段来表示匹配到的文档总数,并且一个 hits 数组包含所查询结果的前十个文档。
在 hits 数组中每个结果包含文档的 _index 、 _type 、 _id ,加上 _source 字段。这意味着我们可以直接从返回的搜索结果中使用整个文档。这不像其他的搜索引擎,仅仅返回文档的ID,需要你单独去获取文档。
每个结果还有一个 _score ,它衡量了文档与查询的匹配程度。默认情况下,首先返回最相关的文档结果,就是说,返回的文档是按照 _score 降序排列的。在这个例子中,我们没有指定任何查询,故所有的文档具有相同的相关性,因此对所有的结果而言 1 是中性的 _score 。
max_score 值是与查询所匹配文档的 _score 的最大值。

3.3.2 took

took 值告诉我们执行整个搜索请求耗费了多少毫秒

3.3.3 Shard

_shards 部分 告诉我们在查询中参与分片的总数,以及这些分片成功了多少个失败了多少个。正常情况下我们不希望分片失败,但是分片失败是可能发生的。
如果我们遭遇到一种灾难级别的故障,在这个故障中丢失了相同分片的原始数据和副本,那么对这个分片将没有可用副本来对搜索请求作出响应。假若这样,Elasticsearch 将报告这个分片是失败的,但是会继续返回剩余分片的结果。

3.3.4 timeout

timed_out 值告诉我们查询是否超时。默认情况下,搜索请求不会超时。 如果低响应时间比完成结果更重要,你可以指定 timeout 为 10 或者 10ms(10毫秒),或者 1s(1秒):
GET /_search?timeout=10ms
在请求超时之前,Elasticsearch 将会返回已经成功从每个分片获取的结果。

最新文章

  1. (转)整体把握jQuery -jQuery 的原型关系图
  2. HDU5739 Fantasia(点双连通分量 + Block Forest Data Structure)
  3. merge into的用法
  4. Tomcat error: A child container failed during start
  5. 数据结构(树套树):ZJOI 2013 K大数查询
  6. poj3468 线段树+lazy标记
  7. HashMap,LinkedHashMap,TreeMap的区别(转)
  8. [Elasticsearch] 集群工作 - 第二部分
  9. Map笔记
  10. 《java入门第一季》之Arrays类前传(排序案例以二分查找注意的问题)
  11. Python面向对象中的类和对象
  12. mssql sqlserver text数据类型专题说明
  13. 什么是 js 变量提升 (Javascript Hoisting)
  14. Matplotlib学习---用matplotlib画直方图/密度图(histogram, density plot)
  15. Xstream将XML转换为javabean的问题
  16. 【总结】牛客职播第十期:程盟有你,way来可期
  17. Ionic Tabs
  18. iOS: sqlite数据库的基本操作
  19. TCP三次握手连接和TCP四次挥手及大量TIME_WAIT解决方法:
  20. sga之library cache 内部原理

热门文章

  1. [BZOJ 1535] [Luogu 3426]SZA-Template (KMP+fail树+双向链表)
  2. Layui数据表格模型
  3. vim中代码按照行对齐。
  4. 在.NET Core 3.0中发布单个Exe文件(PublishSingleFile)
  5. 企业面试题|最常问的MySQL面试题集合(三)
  6. 剑指offer-5:十进制转二进制
  7. element样式调整用到的东西
  8. Linux上安装JDK1.8,tomcat9,以及mysql8的步骤
  9. php判断变量是否为数字is_numeric()
  10. Thiago2(TPO AI.ROSTO):集成式AI换脸软件(Autodesk Flame)