- 建立索引
對比關係型資料庫,建立索引就等同建立資料庫PUT請求 http://127.0.0.1:9200/shopping
- 查詢索引
GET請求 http://127.0.0.1:9200/shopping
- 查詢所有索引
GET請求 http://127.0.0.1:9200/_cat/indices?v
- 刪除索引
DELETE請求 http://127.0.0.1:9200/shopping
索引已經建立好了,接下來我們建立文件,並新增資料。這裡的文件可以類比為關係型資料庫中的表資料,新增的資料格式為JSON格式
建立文件
POST請求 http://127.0.0.1:9200/shopping/_doc #寫法一 http://127.0.0.1:9200/shopping/_create # 寫法二 {"name":"商品"}
PUT請求,主鍵必須冪等性 http://127.0.0.1:9200/shopping/_doc/1001 #寫法一 http://127.0.0.1:9200/shopping/_create/1002 # 寫法二 {"name":"商品"}
POST請求 ,建立自定義id http://127.0.0.1:9200/shopping/_doc/1001
主鍵查詢
GET請求 http://127.0.0.1:9200/shopping/_doc/1001
全查詢
GET請求 http://127.0.0.1:9200/shopping/_search
全量修改
PUT請求 http://127.0.0.1:9200/shopping/_doc/1001 {"name":"商品"}
區域性修改
POST請求 http://127.0.0.1:9200/shopping/_update/1001 {"doc":{"name":"區域性修改商品"}}
刪除
DELETE請求 http://127.0.0.1:9200/shopping/_doc/1001
查詢
條件查詢
GET請求,方法一 http://127.0.0.1:9200/shopping/_search?q=category:小米 http://127.0.0.1:9200/shopping/_search?q=name:商品
GET請求,方法二(推薦) http://127.0.0.1:9200/shopping/_search { "query":{ "match":{ "category":"小米" } } }
全量查詢
GET請求 http://127.0.0.1:9200/shopping/_search { "query":{ "match_all":{ } } }
分頁查詢(from,size)
GET請求 http://127.0.0.1:9200/shopping/_search { "query":{ "match_all":{ } }, "from":0,#起始位置/偏移量 ,公式:(頁碼-1)* 每頁資料條數 "size":10,#每頁查詢10條 }
指定field分頁查詢 (_source)
GET請求 http://127.0.0.1:9200/shopping/_search { "query":{ "match_all":{ } }, "from":0,#起始位置/偏移量 ,公式:(頁碼-1)* 每頁資料條數 "size":10,#每頁查詢10條 "_source":["title"] }
查詢排序(sort)
GET請求 http://127.0.0.1:9200/shopping/_search { "query":{ "match_all":{ } }, "from":0,#起始位置/偏移量 ,公式:(頁碼-1)* 每頁資料條數 "size":10,#每頁查詢10條 "_source":["title"], "sort":{ "price":{ "order":"desc" } } }
多條件查詢
and查詢(must)
GET請求 http://127.0.0.1:9200/shopping/_search { "query":{ "bool":{ "must":[ { "match":{ "category":"小米" } }, { "match":{ "price":1999.00 } } ] } } }
or查詢(should)
GET請求 http://127.0.0.1:9200/shopping/_search { "query":{ "bool":{ "should":[ { "match":{ "category":"小米" } }, { "match":{ "price":1999.00 } } ] } } }
範圍查詢(filter,range)
GET請求 http://127.0.0.1:9200/shopping/_search { "query":{ "bool":{ "should":[ { "match":{ "category":"小米" } }, { "match":{ "price":1999.00 } } ], "filter":{ "range":{ "price":{ "gt":5000 } } } } } }
全文檢索匹配(分詞)(match)
GET請求 http://127.0.0.1:9200/shopping/_search { "query":{ "match":{ "category": "小華" } } }
完全匹配(match_phrase)
GET請求 http://127.0.0.1:9200/shopping/_search { "query":{ "match_phrase":{ "category": "小華" } } }
高亮查詢 (hightlight,對結果加html標籤)
GET請求 http://127.0.0.1:9200/shopping/_search { "query":{ "match_phrase":{ "category": "小華" } }, "hightlight":{ "fields":{ "category":{} } } }
聚合查詢
返回統計資料和原始資料
GET請求 http://127.0.0.1:9200/shopping/_search { "aggs":{ #聚合操作 "price_group":{ #名稱,隨意起名 "terms":{ #分組 "field":"price" #分組欄位 } } }, }
關閉原始資料(size)
GET請求 http://127.0.0.1:9200/shopping/_search { "aggs":{ #聚合操作 "price_group":{ #名稱,隨意起名 "terms":{ #分組 "field":"price" #分組欄位 } } }, "size":0 }
平均值
GET請求 http://127.0.0.1:9200/shopping/_search { "aggs":{ #聚合操作 "price_avg":{ #名稱,隨意起名 "age":{ #平均值 "field":"price" #分組欄位 } } }, "size":0 }
對映關係
建立對映
PUT請求 http://127.0.0.1:9200/user/_mapping { "properties":{ "name":{ "type":"text", #全文檢索分詞查詢 "index":true }, "sex":{ "type":"keyword",#完全查詢 "index":true }, "tel":{ "type":"keyword",#不能查詢 "index":false } } }
查詢對映
GET請求 http://127.0.0.1:9200/user/_mapping
增加資料
PUT請求 http://127.0.0.1:9200/user/_create/1001 { name:"小米", sex:"男的", tel:"10010" }
查詢資料
GET請求 http://127.0.0.1:9200/user/_search { "query":{ "match": { name:"小" } } }
GET請求 http://127.0.0.1:9200/user/_search { "query":{ "match": { sex:"男" #查詢不到,必須輸入男的 } } }
#不支援查詢 GET請求 http://127.0.0.1:9200/user/_search { "query":{ "match": { tel:"10010" } } }
本作品採用《CC 協議》,轉載必須註明作者和本文連結