第一.导入测试数据
1.创建一个索引库(如果使用)
** windows下需要使用\" **
curl -XPUT "localhost:9200/fendo"
2.导入es官网官网测试数据accounts.json
curl -H "Content-Type:application/json" -XPOST "localhost:9200/fendo/account/_bul_bulk?pretty' --data-binary "@/tools/elasticsearch-6.6.2/accounts.json"
注意:
1 这里使用的时绝对路径,如果使用相对路径需要在accounts.json所在的目录运行curl命令—— @/accounts.json
2 localhost:9200是ES的访问地址和端口
3 fendo是索引的名称
4 account是类型的名称
5 索引和类型的名称在文件中如果有定义,可以省略;如果没有则必须要指定
6 _bulk是rest得命令,可以批量执行多个操作(操作是在json文件中定义的,原理可以参考之前的翻译)
7 pretty是将返回的信息以可读的JSON形式返回
第二.基本操作
a.插入
** 这里的json数据,window执行总是提示json格式问题,第一个采用拼接字符串,第二个采用转义字符 **
curl -H "Content-Type:application/json" -XPUT "http://localhost:9200/test/es/1?pretty" -d "{"""first_name""":"""fendo"""}"
或者
curl -H "Content-Type:application/json" -XPUT "http://localhost:9200/test/es/1?pretty" -d "{\"first_name\":\"fendo\"}"
返回的结果
{ "_index" : "test", //我们上文中指定的index —— test "_type" : "es", // 我们上文中指定的type —— es "_id" : "1", // 我们上文中指定的id —— 1 "_version" : 6, // 这里我已经执行了5次,从1开始,版本号每次新增一个 "result" : "updated", // 这里执行的是更新操作 "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "_seq_no" : 5, // 从0开始,每次增加一个 "_primary_term" : 1 }
b.查询
1.查询所有
curl "localhost:9200/test/_search?q=*&pretty"
其中test是查询的索引名称,q后面跟着搜索的条件{我好像传啥都返回空},q=*表示查询所有的内容
2.请求体方式
curl -H "Content-type:application/json" "localhost:9200/test/_search?pretty" -d "{\"query\":{\"match_all\": {}}}"
把查询的内容放入body体中,会造成一定的开销
3.根据索引来查询
curl -XGET "localhost:9200/test/es/1?pretty"
c.更新
curl -H "Content-type:application/json" -XPUT "localhost:9200/test/es/1" -d "{\"last_name\":\"fk\"}"
更新接口与创建接口完全一样,ES会查询记录是否存在,如果不存在就是创建,存在就是更新操作。
d.删除
curl -XDELETE "localhost:9200/test/es/1?pretty"