es_数据基本操作_1

第一.导入测试数据

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"

原文地址:https://www.cnblogs.com/kongkongFabian/p/10576867.html