亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

Elasticsearch5.20 基本語法之查詢

2024-07-21 02:52:40
字體:
來源:轉載
供稿:網友
Elasticsearch5.20 基本語法之查詢這里我們先導入測試數據accounts.json( 下載地址:http://download.csdn.net/detail/taoshujian/9766616 )Elasticsearch導入json數據的語法如下:
curl -XPOST localhost:9200/bank/account/_bulk?PRetty  --data-binary "@E:/programme/_backups/accounts.json"@后面為文件路徑,也可是相對路徑如果你的windows下沒有curl命令,可以看看這里: http://blog.csdn.net/taoshujian/article/details/60147463Elasticsearch查詢有兩種基本方式:URI和request body下面先看一個查詢示例:通過URI方式查詢執行如下命令:
#REST request URIGET /bank/_search?q=*&sort=account_number:asc&pretty返回結果如下:這里q=*參數表示匹配所有文檔。sort=account_number:asc參數表示按account_number對結果進行升序排序。pretty參數表示格式化JSON結果。至于響應,我們看到以下部分:took - Elasticsearch執行搜索的時間(以毫秒為單位)timed_out - 告訴我們搜索是否超時_shards - 告訴我們搜索了多少分片,以及成功/失敗的搜索分片的計數hits - 搜索結果hits.total - 符合我們的搜索條件的文檔總數hits.hits - 搜索結果的實際數組(默認為前10個文檔)hits.sort - 結果排序鍵(如果按分數排序,則缺少)同樣的查詢規則通過request body方式查詢時語法如下:
#REST request bodyGET /bank/_search{  "query": { "match_all": {} },  "sort": [    { "account_number": "asc" }  ]}Elasticsearch提供了一種JSON風格的語言,可用于執行查詢。這被稱為Query DSL。查詢語言相當全面,實際學習它還是要從幾個基本的例子開始。
#查詢所有  GET /bank/_search{  "query": { "match_all": {} }}#查詢一條  注: 默認情況下查詢的就是所有數據,所以示例中"query": { "match_all": {} }不是必寫的GET /bank/_search{  "query": { "match_all": {} },  "size": 1}#查詢第11至第20條數據 注:from默認從0開始的GET /bank/_search{  "query": { "match_all": {} },  "from": 10,  "size": 10}#按balance降序GET /bank/_search{  "query": { "match_all": {} },  "sort": { "balance": { "order": "desc" } }}#只查詢account_number和balanceGET /bank/_search{  "query": { "match_all": {} },  "_source": ["account_number", "balance"]}可以將match查詢視為基本的字段化搜索查詢(即針對特定字段或字段集進行的搜索)。
#查詢account_number=20的帳戶GET /bank/_search{  "query": { "match": { "account_number": 20 } }}#查詢在address中包含術語“mill”的所有帳戶GET /bank/_search{  "query": { "match": { "address": "mill" } }}#查詢在address中包含“mill”或“lane”一詞的所有帳戶:GET /bank/_search{  "query": { "match": { "address": "mill lane" } }}#此示例是match(match_phrase)的變體,查詢在address中包含短語“mill lane”的所有帳戶:GET /bank/_search{  "query": { "match_phrase": { "address": "mill lane" } }}bool查詢允許我們撰寫較小的查詢到使用布爾邏輯更大的查詢
#此示例編寫兩個match查詢,即查詢address中包含“mill”和“lane”的所有帳戶。bool must子句表示所有條件必須滿足 類似于判斷條件中的&&。GET /bank/_search{  "query": {    "bool": {      "must": [        { "match": { "address": "mill" } },        { "match": { "address": "lane" } }      ]    }  }}#相比之下,此示例中兩個match則是查詢并address中包含“mill”或“lane”的所有帳戶。bool should類似于判斷條件中的||GET /bank/_search{  "query": {    "bool": {      "should": [        { "match": { "address": "mill" } },        { "match": { "address": "lane" } }      ]    }  }}#此示例的兩個match查詢,則是查詢address中既不包含“mill”也不包含“lane”的所有帳戶。GET /bank/_search{  "query": {    "bool": {      "must_not": [        { "match": { "address": "mill" } },        { "match": { "address": "lane" } }      ]    }  }}#我們可以在查詢中同時合并must,should和must_not子句bool。此外,我們可以bool在任何這些bool子句中組合查詢來模擬任何復雜的多級布爾邏輯。此示例返回任何age=40但state!=ID的所有帳戶:GET /bank/_search{  "query": {    "bool": {      "must": [        { "match": { "age": "40" } }      ],      "must_not": [        { "match": { "state": "ID" } }      ]    }  }}關于過濾器filters的查詢
#range查詢,它允許我們通過一定范圍的值來過濾文檔。這通常用于數字或日期過濾。#使用bool查詢返回余額介于20000和30000(含)之間的所有帳戶。換句話說,我們想要找出余額大于或等于20000且小于或等于30000的帳戶。GET /bank/_search{  "query": {    "bool": {      "must": { "match_all": {} },      "filter": {        "range": {          "balance": {            "gte": 20000,            "lte": 30000          }        }      }    }  }}#解析上面的查詢,bool查詢包含一個match_all查詢(查詢部分)和一個range查詢(過濾器部分)。我們可以將任何其他查詢替換為查詢和過濾器部分。關于分組聚合查詢
#這個例子按狀態分組所有的帳戶,然后返回前10(默認)狀態,按照count遞減排序(也是默認)GET /bank/_search{  "size": 0,  "aggs": {    "group_by_state": {      "terms": {        "field": "state.keyWord"      }    }  }}#與SQL語法相識:SELECT state, COUNT(*) FROM bank GROUP BY state ORDER BY COUNT(*) DESC#注:設置size=0為不顯示搜索匹配。你可以不寫size=0看看返回結果#下面示例計算按州(state)的平均帳戶余額(僅針對按降序排序的前10個州)GET /bank/_search{  "size": 0,  "aggs": {    "group_by_state": {      "terms": {        "field": "state.keyword"      },      "aggs": {        "average_balance": {          "avg": {            "field": "balance"          }        }      }    }  }}#注意我們如何在average_balance聚合中嵌套group_by_state聚合。這是所有聚合的常見模式。您可以任意嵌套聚合中的聚合,以提取您需要從數據中獲得的透視摘要。基于之前的聚合,現在我們以降序對平均余額進行排序GET /bank/_search{  "size": 0,  "aggs": {    "group_by_state": {      "terms": {        "field": "state.keyword",        "order": {          "average_balance": "desc"        }      },      "aggs": {        "average_balance": {          "avg": {            "field": "balance"          }        }      }    }  }}#這個例子演示了我們如何根據年齡段(20-29,30-39和40-49),然后按性別分組,然后最終得到每個年齡段的每個性別的平均帳戶余額:GET /bank/_search{  "size": 0,  "aggs": {    "group_by_age": {      "range": {        "field": "age",        "ranges": [          {            "from": 20,            "to": 30          },          {            "from": 30,            "to": 40          },          {            "from": 40,            "to": 50          }        ]      },      "aggs": {        "group_by_gender": {          "terms": {            "field": "gender.keyword"          },          "aggs": {            "average_balance": {              "avg": {                "field": "balance"              }            }          }        }      }    }  }}到這里我們會發現ElasticSearch的語法和SQL其實是異曲同工的。它因為功能強大而簡單,亦因為功能強大而復雜。事實上我這幾篇關于Elasticsearch的筆記都是根據它的官網來的,自己并沒增加什么東西,因為官方文檔很清晰了,而且我也沒有刪減什么內容,因為這些都是必要的??催^這些后,基本的增刪改查已經沒什么問題,算是上手了,那么后續將會看看它的理論基礎部份。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲一区二区三区香蕉| 美日韩丰满少妇在线观看| 欧美另类99xxxxx| 久久精品亚洲94久久精品| 国产成人精品一区二区在线| 韩日欧美一区二区| 欧美一区二区三区艳史| 黑人精品xxx一区| 日韩av电影中文字幕| 久久精品国产亚洲精品| 久久精品国产久精国产思思| 精品久久久久国产| 草民午夜欧美限制a级福利片| 国产在线视频91| 国产91精品青草社区| 另类视频在线观看| 日本成人激情视频| 欧美日韩xxx| 精品久久久91| 揄拍成人国产精品视频| 国产专区欧美专区| 成人亲热视频网站| 亚洲日韩中文字幕| 日韩美女在线播放| 日韩精品视频在线播放| 最新国产精品拍自在线播放| 欧美激情免费观看| 日韩电影免费观看中文字幕| 国产丝袜一区视频在线观看| 欧美中在线观看| 欧美一级黑人aaaaaaa做受| 日韩中文字幕在线| 伦伦影院午夜日韩欧美限制| 最近2019年好看中文字幕视频| 不卡在线观看电视剧完整版| 精品欧美国产一区二区三区| 久久久www成人免费精品| 国产精品96久久久久久又黄又硬| 91免费国产视频| 欧美黄色片免费观看| 成人女保姆的销魂服务| 亚洲成人黄色网址| 日本不卡高字幕在线2019| 一本色道久久综合狠狠躁篇的优点| 欧美福利视频在线| 国产精品电影在线观看| 性欧美xxxx交| 欧美电影在线观看| 福利一区福利二区微拍刺激| 精品国偷自产在线| 在线视频亚洲欧美| 欧美在线一级va免费观看| 欧美性xxxxxxxxx| 国产美女扒开尿口久久久| 中文字幕综合在线| 午夜精品福利电影| 亚洲精品美女久久久久| 国产精品v日韩精品| 欧美国产日本高清在线| www.色综合| 热久久这里只有| 国产精品免费一区豆花| 国产亚洲美女精品久久久| www高清在线视频日韩欧美| 这里只有精品视频在线| 欧美一级大片在线观看| 久久99久久99精品中文字幕| 欧美日韩电影在线观看| 免费97视频在线精品国自产拍| 揄拍成人国产精品视频| 成人精品视频在线| 国内精久久久久久久久久人| 国产精品久久999| 91在线网站视频| 国产精品中文字幕久久久| 国产精品久久久久久久久久| 久久久极品av| 亚洲欧美国产va在线影院| 91在线播放国产| 欧美综合第一页| 欧美xxxx做受欧美.88| 色av中文字幕一区| 亚洲一区二区免费| 欧美黑人国产人伦爽爽爽| 国产亚洲一区精品| 丝袜情趣国产精品| 亚洲视频精品在线| 欧美综合在线第二页| 日韩精品在线免费观看| 欧美一乱一性一交一视频| 国产脚交av在线一区二区| www.欧美三级电影.com| 性欧美暴力猛交69hd| 亚洲综合在线做性| 97视频在线观看免费高清完整版在线观看| 在线播放日韩av| 国产精品网红直播| 精品高清一区二区三区| 国产精品日韩av| 欧美一区二区影院| 国产精品福利片| 日韩视频免费观看| 久久国产精彩视频| 欧美国产极速在线| 95av在线视频| 成人日韩在线电影| 国产女人精品视频| 欧美一区二区三区免费视| 亚洲人成在线电影| 在线观看精品国产视频| 欧美猛少妇色xxxxx| 97热精品视频官网| 国产成人一区三区| 日本欧美精品在线| 亚洲精品成人免费| 日韩男女性生活视频| 日韩有码在线电影| 国内精品免费午夜毛片| 国外视频精品毛片| 久久国产精品影视| 91免费精品国偷自产在线| 亚洲开心激情网| 欧美精品999| 欧美视频第一页| 精品亚洲国产视频| 精品亚洲一区二区三区在线观看| 精品国产区一区二区三区在线观看| 欧美野外猛男的大粗鳮| 日本久久中文字幕| 亚洲精品电影在线| 国产欧美日韩最新| 一区二区欧美在线| 精品露脸国产偷人在视频| 亚洲欧美日韩精品久久亚洲区| 亚洲第一区中文99精品| 日韩中文第一页| 国产精品欧美在线| 国产国产精品人在线视| 欧美日韩日本国产| 美女视频黄免费的亚洲男人天堂| 欧洲午夜精品久久久| 4p变态网欧美系列| 久久久精品在线| 亚洲成人中文字幕| 国产欧美精品一区二区三区-老狼| 亚洲综合成人婷婷小说| 色午夜这里只有精品| 黑人精品xxx一区一二区| 久久免费视频这里只有精品| 久久国产加勒比精品无码| 精品香蕉一区二区三区| 欧美日韩精品在线| 亚洲成人免费在线视频| 欧美第一页在线| 日韩精品有码在线观看| 中文字幕日本欧美| 欧美韩国理论所午夜片917电影| 性欧美在线看片a免费观看| 精品久久久香蕉免费精品视频| 久久久久国产精品免费| 亚洲成人av片| 欧美日韩中国免费专区在线看| 911国产网站尤物在线观看| 亚洲热线99精品视频|