黑马程序员技术交流社区

标题: 【郑州校区】CURL命令操作执行REST命令 [打印本页]

作者: 我是楠楠    时间: 2018-10-16 15:10
标题: 【郑州校区】CURL命令操作执行REST命令
【郑州校区】CURL命令操作执行REST命令
要理解本教程的所有示例,需要在您的系统上安装 Elasticsearch。下载针对您的平台的 最新 Elastic Search 程序包。将该包解压到一个方便的位置。
在 Windows 上,运行elastic-search-dir/bin/elasticsearch.bat
1.1. Windows安装CURL
第一步:工具下载:
  在官网处下载工具包:http://curl.haxx.se/download.html
下载后:
为了方便运行,不出现中文路径,解压后放置到D盘software目录下
第二步:安装
【使用方式一】:在curl.exe目录中使用
  解压下载后的压缩文件,通过cmd命令进入到curl.exe所在的目录。
  进入到该目录后,执行curl --help测试:
【使用方式二】:放置在system32中
  解压下载好的文件,拷贝curl.exe文件到C:\Windows\System32
然后就可以在DOS窗口中任意位置,使用curl命令了。
【使用方式三】:配置环境变量(推荐)
  在系统高级环境变量中,配置
  CURL_HOME ----- "你的curl目录位置"
  path ---- 末尾添加 “;%CURL_HOME%;”
  这样与上面方式二的效果相同。
    可以对 Elasticsearch 发出 CURL 请求,这样很容易从命令行 shell 体验该框架。
“Elasticsearch 是无模式的。它可以接受您提供的任何命令,并处理它以供以后查询。”
Elasticsearch 是无模式的,这意味着它可以接受您提供的任何命令,并处理它以供以后查询。Elasticsearch 中的所有内容都被存储为文档,所以您的第一个练习是存储一个包含博客的文档。首先创建一个索引,它是您的所有文档类型的容器 — 类似于 MySQL 等关系数据库中的数据库。然后,将一个文档插入该索引中,以便可以查询该文档的数据。
1.2. 创建一个索引
    Elasticsearch 命令的一般格式是:REST VERBHOST:9200/index/doc-type— 其中 REST VERB 是 PUT、GET 或DELETE。(使用 cURL -X 动词前缀来明确指定 HTTP 方法。)
要创建一个索引,可在您的 shell 中运行以下命令:
curl -XPUT "http://localhost:9200/blog01/"

尽管 Elasticsearch 是无模式的,但它在幕后使用了 Lucene,后者使用了模式。不过 Elasticsearch 为您隐藏了这种复杂性。实际上,您可以将 Elasticsearch 文档类型简单地视为子索引或表名称。但是,如果您愿意,可以指定一个模式,所以您可以将它视为一种模式可选的数据存储。
【查看】
1.3. 插入一个文档
要在 /blog01 索引下创建一个类型,可插入一个文档。
要将包含 “Deck the Halls” 的文档插入索引中,可运行以下命令(将该命令和本教程的其他 CURL 命令都键入到一行中):
curl -XPUT "http://localhost:9200/blog01/article/1" -d  "{"""id""": """1""", """title""": """Whatiselasticsearch"""}"

    前面的命令使用 PUT 动词将一个文档添加到 /article文档类型,并为该文档分配 ID 为1。URL 路径显示为index/doctype/ID(索引/文档类型/ID)。
1.4. 查看文档
要查看该文档,可使用简单的 GET 命令:
curl -XGET "http://localhost:9200/blog01/article/1"

Elasticsearch 使用您之前 PUT 进索引中的 JSON 内容作为响应:
1.5. 更新文档
如果您认识到title字段写错了,并想将它更改为 Whatislucene 怎么办?可运行以下命令来更新文档:
curl -XPUT "http://localhost:9200/blog01/article/1" -d "{"""id""": """1""", """title""": """Whatislucene"""}"

因为此命令使用了相同的唯一 ID为1,所以该文档会被更新。
1.6. 搜索文档
是时候运行一次基本查询了,此查询比您运行来查找 “Get the Halls” 文档的简单 GET 要复杂一些。文档 URL 有一个内置的 _search 端点用于此用途。在标题中找到所有包含单词 lucene 的数据:
curl -XGET "http://localhost:9200/blog01/article/_search?q=title:'whatislucene'"

q 参数表示一个查询。
1.7. 检查搜索返回对象
    上图中给出了 Elasticsearch 从前面的查询返回的数据。
    在结果中,Elasticsearch 提供了多个 JSON 对象。第一个对象包含请求的元数据:看看该请求花了多少毫秒 (took) 和它是否超时 (timed_out)。_shards 字段需要考虑 Elasticsearch 是一个集群化服务的事实。甚至在这个单节点本地部署中,Elasticsearch 也在逻辑上被集群化为分片。在往后看可以观察到 hits 对象包含:
· total 字段,它会告诉您获得了多少个结果
· max_score,用于全文搜索
· 实际结果
实际结果包含 fields 属性,因为您将 fields 参数添加到了查询中。否则,结果中会包含 source,而且包含完整的匹配文档。_index、_type 和 _id 分别表示索引、文档类型、ID;_score 指的是全文搜索命中长度。这 4 个字段始终会在结果中返回。
1.8. 删除文档
暂时不要删除该文档,知道如何删除它就行了:
curl -XDELETE "http://localhost:9200/blog01/article/1"

1.9. 删除索引
暂时不要删除该文档,知道如何删除它就行了:
curl -XDELETE "http://localhost:9200/blog01"

传智播客·黑马程序员郑州校区地址
河南省郑州市 高新区长椿路11号大学科技园(西区)东门8号楼三层
联系电话 0371-56061160/61/62
来校路线  地铁一号线梧桐街站A口出






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2