0x00 特性
- 支持 RESTful 接口请求 es
- 出入参json格式
0x01 和表对比
ES -> MySQL
Index -> DataBase
Type -> Table
Document -> Row
Fields -> Column
0x02 倒排索引
关键字对 index id 做索引
keyword id
name 1001, 1002
0x03 创建索引
使用PUT, 可以创建索引
curl -XPUT localhost:9200/shopping
{"acknowledged":true,"shards_acknowledged":true,"index":"shopping"}
查看索引
curl localhost:9200/shopping
{"shopping":{"aliases":{},"mappings":{},"settings":{"index":{"routing":{"allocation":{"include":{"_tier_preference":"data_content"}}},"number_of_shards":"1","provided_name":"shopping","creation_date":"1635498010276","number_of_replicas":"1","uuid":"C2RNOYlKTguLpDywTkpRHQ","version":{"created":"7130499"}}}}}
查看所有索引
curl 'localhost:9200/_cat/indices?v'
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open ui_template Jfv-9EF6Q-qV45ASibvdMw 1 1 0 0 208b 208b
yellow open browser_app_error_sum-20210804 4Vr-I_koRteHTRC5jzSDTw 1 1 0 0 208b 208b
yellow open service_instance_resp_time-20210804 CHqQxEazQAmfDhs1GV352w 1 1 0 0 208b 208b
yellow open browser_error_log-20210804 xBtfwjLrTiStliZChsz_Sg 1 1 0 0 208b 208b
删除索引
curl -XDELETE localhost:9200/shopping
{"acknowledged":true}%
0x04 文档操作
添加一条文档
curl -XPOST localhost:9200/shopping/_doc -d '{"name":"嘿嘿"}' -H 'content-type:application/json'
{"_index":"shopping","_type":"_doc","_id":"N3xXy3wBm2xQb2VvOxWZ","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}%
创建成功后, _id
是这条数据的唯一标识,由系统生成, _index
是数据库标识
指定 _id
, 提交数据:
curl -XPOST localhost:9200/shopping/_doc/1000 -d '{"name":"嘿嘿"}' -H 'content-type:application/json'
{"_index":"shopping","_type":"_doc","_id":"1000","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1}%
指定id查询
curl localhost:9200/shopping/_doc/1000
{"_index":"shopping","_type":"_doc","_id":"1000","_version":1,"_seq_no":1,"_primary_term":1,"found":true,"_source":{"name":"嘿嘿"}}%
查询全文档
curl localhost:9200/shopping/_search
{"took":29,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":2,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"shopping","_type":"_doc","_id":"N3xXy3wBm2xQb2VvOxWZ","_score":1.0,"_source":{"name":"嘿嘿"}},{"_index":"shopping","_type":"_doc","_id":"1000","_score":1.0,"_source":{"name":"嘿嘿"}}]}}%
全表更新文档 PUT
curl -XPUT localhost:9200/shopping/_doc/1000 -d '{"name":"嘿嘿","age":18}' -H 'content-type:application/json'
{"_index":"shopping","_type":"_doc","_id":"1000","_version":2,"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":2,"_primary_term":1}%
指定信息更新 POST
curl -XPOST localhost:9200/shopping/_update/1000 -d '{"doc": {"name":"嘿嘿22","age":28}}' -H 'content-type:application/json'
{"_index":"shopping","_type":"_doc","_id":"1000","_version":3,"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":3,"_primary_term":1}%
删除文档
curl -XDELETE localhost:9200/shopping/_doc/1000
{"_index":"shopping","_type":"_doc","_id":"1000","_version":4,"result":"deleted","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":4,"_primary_term":1}
按字段查询// 失败
curl 'localhost:9200/shopping/_search?q=name:aa'
{"took":1,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":0,"relation":"eq"},"max_score":null,"hits":[]}}
在请求体里查询 // 失败 where name = aa
curl -XGET localhost:9200/shopping/_search -d '{"query": {"match": {"name":"aa"}}}' -H 'content-type:application/json'
{"took":1,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":0,"relation":"eq"},"max_score":null,"hits":[]}}
在请求体查询所有记录 select * from shopping
curl -XGET localhost:9200/shopping/_search -d '{"query": {"match_all": {}}}' -H 'content-type:application/json'
{"took":1,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":4,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"shopping","_type":"_doc","_id":"N3xXy3wBm2xQb2VvOxWZ","_score":1.0,"_source":{"name":"嘿嘿"}},{"_index":"shopping","_type":"_doc","_id":"1001","_score":1.0,"_source":{"doc": {"name":"aa","age":28}}},{"_index":"shopping","_type":"_doc","_id":"1002","_score":1.0,"_source":{"doc": {"name":"bb","age":28}}},{"_index":"shopping","_type":"_doc","_id":"1003","_score":1.0,"_source":{"doc": {"name":"ab","age":28}}}]}}%
分页查询, select * from shopping limit 0, 1
curl -XGET localhost:9200/shopping/_search -d '{"query": {"match_all": {}},"from":0,"size":1}' -H 'content-type:application/json'
{"took":1,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":4,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"shopping","_type":"_doc","_id":"N3xXy3wBm2xQb2VvOxWZ","_score":1.0,"_source":{"name":"嘿嘿"}}]}}%
指定返回列 , select name from shopping limit 0,1
curl -XGET localhost:9200/shopping/_search -d '{"query": {"match_all": {}},"from":0,"size":1, "_source":["name"]}' -H 'content-type:application/json'
{"took":1,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":4,"relation":"eq"},"max_score":1.0,"hits":[{"_index":"shopping","_type":"_doc","_id":"N3xXy3wBm2xQb2VvOxWZ","_score":1.0,"_source":{"name":"嘿嘿"}}]}}
排序: order by age desc
curl -XGET localhost:9200/shopping/_search -d '{"query": {"match_all": {}},"from":0,"size":1, "_source":["name"], "sort":{ "age" : {"order":"desc"}}}' -H 'content-type:application/json'
{"took":11,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":4,"relation":"eq"},"max_score":null,"hits":[{"_index":"shopping","_type":"_doc","_id":"N3xXy3wBm2xQb2VvOxWZ","_score":null,"_source":{"name":"嘿嘿"},"sort":[-9223372036854775808]}]}}%
网友评论