es--Restful API查询
生活随笔
收集整理的這篇文章主要介紹了
es--Restful API查询
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Restful API查詢
- 準備測試數據
- 1、match_all
- 2、match
- 3、bool
- 4、term
- 5、range
- 6、exists
- 7、filter
- 8、淺分頁
- 9、深分頁
準備測試數據
POST /school/student/_bulk { "index": { "_id": 1 }} { "name" : "liubei", "age" : 20 , "sex": "boy", "birth": "1996-01-02" , "about": "i like diaocan he girl" } { "index": { "_id": 2 }} { "name" : "guanyu", "age" : 21 , "sex": "boy", "birth": "1995-01-02" , "about": "i like diaocan" } { "index": { "_id": 3 }} { "name" : "zhangfei", "age" : 18 , "sex": "boy", "birth": "1998-01-02" , "about": "i like travel" } { "index": { "_id": 4 }} { "name" : "diaocan", "age" : 20 , "sex": "girl", "birth": "1996-01-02" , "about": "i like travel and sport" } { "index": { "_id": 5 }} { "name" : "panjinlian", "age" : 25 , "sex": "girl", "birth": "1991-01-02" , "about": "i like travel and wusong" } { "index": { "_id": 6 }} { "name" : "caocao", "age" : 30 , "sex": "boy", "birth": "1988-01-02" , "about": "i like xiaoqiao" } { "index": { "_id": 7 }} { "name" : "zhaoyun", "age" : 31 , "sex": "boy", "birth": "1997-01-02" , "about": "i like travel and music" } { "index": { "_id": 8 }} { "name" : "xiaoqiao", "age" : 18 , "sex": "girl", "birth": "1998-01-02" , "about": "i like caocao" } { "index": { "_id": 9 }} { "name" : "daqiao", "age" : 20 , "sex": "girl", "birth": "1996-01-02" , "about": "i like travel and history" } { "index": { "_id": 10 }} { "name" : "luban", "age" : 21 , "sex": "girl", "birth": "1996-01-02" , "about": "i like travel and history" } { "index": { "_id": 11 }} { "name" : "guiguzi", "age" : 29 , "sex": "girl", "birth": "1996-01-02" , "about": "i like football" } { "index": { "_id": 12 }} { "name" : "zhuangzhou", "age" : 40 , "sex": "girl", "birth": "1996-01-02" , "about": "i like history" }- ES中兩種查詢方式
- GET:指定documentId來查詢
- 只能查詢這一條documentId的數據
- 類似于Hbase中的get
- GET:指定_search,通過構建查詢器Query來做復雜的條件查詢
- 類似于Hbase中scan
- GET:指定documentId來查詢
1、match_all
- 查詢:匹配所有查詢
- 默認只顯示10條
- 指定條數
2、match
- 模糊匹配查詢:ES中默認的排序規則:按照評分降序排序
3、bool
- 多條件查詢:條件之間的邏輯關系
- must:必須滿足的條件
- must_not:必須不能滿足的條件
- should:應該,可有可無,或者
- 測試
- 查詢所有喜歡旅游但性別不是男性的
- 查詢所有喜歡旅游的,如果有男的也可以
4、term
- 詞條查詢【重要】,精準匹配
- terms:多個詞匹配
5、range
- 范圍查詢
- bool多條件嵌套
6、exists
- 判斷是否存在
7、filter
- 過濾查詢
8、淺分頁
- 類似于limit M,N
- M:從第幾條開始,M從0開始計數
- N:顯示幾條
- 需要給定的條件
- 起始位置:從0開始
- 頁面大小
- 分頁查詢
- 從0開始一直掃描到起始位置,然后顯示size的數據
- 每次只返回一頁
- 工作中不推薦使用淺分頁
- 原理是對每個分片都查詢N條,然后再合并根據評分排序取最后的N條
- 如果你的from的位置比較大,性能非常差
- from:10000 size:10
- index
- shard0:from:10000 size:10
- shard1:from:10000 size:10
- shard2:from:10000 size:10
- shard3:from:10000 size:10
- shard4:from:10000 size:10
- |
- 返回50條,根據評分排序,取前10條
9、深分頁
- 自動翻頁
- 不建議將結果在內存中緩存太長時間
- 初始化:將需要的數據從文件中放到內存中
- 分頁查詢:從內存中查詢,指定緩存的id
- 不建議處理特別大的數據量,建議通過范圍來控制頁面的數據,做數據過濾
總結
以上是生活随笔為你收集整理的es--Restful API查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图像变换及频域滤波(高斯滤波,巴特沃兹滤
- 下一篇: Extreme Programming介