【Elasticsearch】【基礎】操作使用
使用環境:kibana - Dev Tools
包含了全部基本的es增刪改查相關操作,其中還有一些高級檢索操作
# 1. 查看所有索引 GET /_cat/indices?v # 2. 創建索引,語法:PUT /索引 PUT /huahua_index_1 # 3. 刪除索引,語法:DELETE /索引 DELETE /huahua_index_1 # 4. 新增/更新文檔,語法:PUT /索引/類型/文檔id PUT /huahua_index_1/blog/3 { "blog_name": "huahuaBolg3", "article_qty": 3, "age" : 3, "about":"this only a blog", "interests": ["java","python","linux"] } # 5. 刪除文檔,語法:DELETE /索引/類型/文檔id DELETE /huahua_index_1/blog/3 # 6. 簡單搜索(使用查詢字符串參數),查詢指定索引和類型下的文檔記錄(默認返回前10筆記錄),語法:GET /索引/類型/_search GET /huahua_index_1/blog/_search # 6.1 簡單搜索(使用查詢字符串參數),查詢指定文檔ID記錄,語法: GET /索引/類型/文檔ID GET /huahua_index_1/blog/1 # 7.輕量搜索(使用查詢字符串參數),將查詢數據進行字段篩選,語法:GET /索引/類型/_search?q=字段key:字段value GET /huahua_index_1/blog/_search?q=age:7 # 查詢age等于7的所有文檔 # 7.1 輕量搜索(使用查詢字符串參數),將查詢數據進行字段篩選并按字段排序,語法:GET /索引/類型/_search?q=字段key:字段value&sort=字段key:desc/asc GET /huahua_index_1/blog/_search?q=blog_name:huahuaBolg7&sort=age:desc # 8. 高級DSL搜索(使用查詢body),使用match查詢所有文檔記錄,語法: # GET /索引/類型/_search # { # "query":{ # "match_all": {} # } # } GET /huahua_index_1/blog/_search { "query":{ "match_all": {} } } # 8.1 查詢結果中指定返回條數 GET /huahua_index_1/blog/_search { "query":{ "match_all": {} }, "size":5 } # 8.2 分頁查詢 GET /huahua_index_1/blog/_search { "query":{ "match_all": {} }, "from":5, "size":1 } # 8.3 查詢結果中返回指定字段 GET /huahua_index_1/blog/_search { "query":{ "match_all": {} }, "_source":["blog_name","age"] } # 8.4 關鍵字查詢,使用term GET /huahua_index_1/blog/_search { "query":{ "term": { "age": { "value": "22" } } } } # 8.4 范圍查詢,使用range,gt大于,lt小于 GET /huahua_index_1/blog/_search { "query":{ "range": { "age": { "gt": 6, "lt": 23 } } } } # 8.6 前綴查詢,使用prefix,查詢包含分詞為前綴的文檔記錄 GET /huahua_index_1/blog/_search { "query":{ "prefix": { "about": { "value": "hua" } } } } # 8.7 通配符查詢,使用wildcard GET /huahua_index_1/blog/_search { "query":{ "wildcard": { "blog_name": { "value": "hua*" } } } } # 8.8 模糊查詢,使用fuzzy,也是按照分詞來查詢 GET /huahua_index_1/blog/_search { "query":{ "fuzzy": { "about": { "value": "huahua" } } } } # 8.9 根據指定字段查詢,使用multi_match GET /huahua_index_1/blog/_search { "query":{ "multi_match": { "query": "華", "fields":["blog_name","about"] } } } # 9. 高級DSL搜索(使用查詢body),使用match/match_phrase將查詢數據進行字段篩選(包含精準檢索和全文檢索),語法: # GET /索引/類型/_search # { # "query":{ # "match/match_phrase": { # "字段key": "字段value" # } # } # } # 9.1 精準檢索,查詢字段age=7的所有文檔記錄 GET /huahua_index_1/blog/_search { "query":{ "match": { "age": "7" } } } # 9.2 全文檢索,在ES的映射類型中keyword , date ,integer, long , double , boolean or ip這些類型不分詞,只有text類型分詞。:about字段包含huahua和華等分詞的所有文檔記錄,查詢結果按照匹配程度進行排序評分,在_score字段記錄評分 GET /huahua_index_1/blog/_search { "query":{ "match": { "about": "huahua 華" } } } # 9.3 短語檢索,查詢匹配連續的短語 GET /huahua_index_1/blog/_search { "query":{ "match_phrase": { "about": "huahua is human" } } } GET /huahua_index_1/blog/_search { "query":{ "match_phrase_prefix": { "about": "huahua is " } } } # 10. 高級DSL搜索(使用查詢body),使用match/match_phrase/highlight將結果中匹配到的關鍵字高亮 GET /huahua_index_1/blog/_search { "query":{ "match_phrase": { "about": "huahua is human" } }, "highlight":{ "fields":{ "about":{} } } } # 11. 高級DSL搜索(使用查詢body),使用bool和fiter將查詢數據進行組合篩選,實現復雜篩選,語法: # GET /索引/類型/_search # { # "query":{ # "bool": { # "must/must_not": {查詢條件}, # "filter": {過濾條件} # } # } # } # 12. 使用bool的must篩選指定的字段名,同時使用filter進行范圍篩選,也可以分開使用 GET /huahua_index_1/blog/_search { "query":{ "bool": { "must":{ "match":{ "blog_name":"huahuaBolg7" } }, "filter":{ "range":{ "age":{"gt":7} } } } } } # 13. 高級DSL搜索(使用查詢body),使用聚合aggs在查詢數據中生成復雜的分析統計,像sql中的group by但功能更強大 # 如果聚合的字段被禁止聚合操作請執行下面語句,開啟聚合功能,不過會增加內存的消耗 PUT /huahua_index_1/_mapping { "properties":{ "interests":{ "type":"text", "fielddata":true } } } GET /huahua_index_1/blog/_search { "query":{ "match": { "blog_name": "huahuaBolg7" } }, "aggs":{ "all_interests":{ "terms":{ "field": "interests" }, "aggs":{ "avg_age":{ "avg":{ "field": "age" } } } } } }
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。