ElasticSearch Memo

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]}]}}%
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章