日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

巧記Elasticsearch常用DSL語法

來源: 責編: 時間:2023-10-29 21:45:59 316觀看
導讀記知識先記輪廓,關于DSL語法的輪廓,記住以下三句話即可:索引、文檔和查詢Match、Term和Bool還有翻頁和聚合一、又愛又恨的DSL使用Elasticsearch時,我們一般是調用RestClient API的方式讀取和寫入集群數據。有時也會使用工

記知識先記輪廓,關于DSL語法的輪廓,記住以下三句話即可:Cmy28資訊網——每日最新資訊28at.com

  • 索引、文檔和查詢
  • Match、Term和Bool
  • 還有翻頁和聚合

Cmy28資訊網——每日最新資訊28at.com

一、又愛又恨的DSL

使用Elasticsearch時,我們一般是調用RestClient API的方式讀取和寫入集群數據。有時也會使用工具查閱和操作數據,比如:使用Chrome插件Multi Elasticsearch Head或者Cerebro、Kibana。筆者建議使用Kibana的方式操作集群數據,使用Multi Elasticsearch Head或者Cerebro從整體上觀察集群。Cmy28資訊網——每日最新資訊28at.com

既然是操作集群數據,那就繞不開ES的DSL語法 — 一個讓人又愛又恨的語法。Cmy28資訊網——每日最新資訊28at.com

  • 愛:Http Restful風格設計的,使用上簡單,隨手擼起一個工具都支持Http訪問。
  • 恨:語法太難記,語法格式在設計上有點反人類,真不知道設計者們是怎么想的。不過你覺得有更好的方案嗎?

本文整理了一些常用DSL語法,方便記憶,分了如下幾類:操作索引、操作文檔、Match查詢、Term查詢、查看分詞。如果碰到復雜查詢還是建議查閱官網。Cmy28資訊網——每日最新資訊28at.com

二、操作數據

在Kibana上操作ES數據的方式如下:Cmy28資訊網——每日最新資訊28at.com

Cmy28資訊網——每日最新資訊28at.com

1.操作索引

(1) 創建索引:Cmy28資訊網——每日最新資訊28at.com

PUT /goods{  "mappings": {    "properties": {      "brandName": {        "type": "keyword"      },      "categoryName": {        "type": "keyword"      },      "createTime": {        "type": "date",        "format": "yyyy-MM-dd HH:mm:ss"      },      "id": {        "type": "keyword"      },      "price": {        "type": "double"      },      "saleNum": {        "type": "integer"      },      "status": {        "type": "integer"      },      "stock": {        "type": "integer"      },      "title": {        "type": "text",        "analyzer": "ik_max_word",        "search_analyzer": "ik_smart"      }    }  },  # 根據情況選擇是否要修改  "settings": {    "number_of_shards": 2,    "number_of_replicas": 2  }}

(2) 刪除索引:Cmy28資訊網——每日最新資訊28at.com

DELETE goods

(3) 重建索引Cmy28資訊網——每日最新資訊28at.com

有些場景下需要重建索引,比如修改了Mapping,重建步驟如下:Cmy28資訊網——每日最新資訊28at.com

POST _reindex                    {  "source": {    "index": "goods"  },  "dest": {    "index": "goods1"  }}DELETE goodsPOST _reindex                    {  "source": {    "index": "goods1"  },  "dest": {    "index": "goods"  }}DELETE goods1

2.操作文檔

(1) 創建文檔Cmy28資訊網——每日最新資訊28at.com

# 這種方式,同樣的id無法重新創建PUT goods/_create/1{  "id": 1,  "brandName": "Apple",  "categoryName": "手機",  "createTime": "2023-10-22 19:12:56",  "price": 8799,  "saleNum": 599,  "status": 0,  "stock": 1000,  "title": "Apple iPhone 15 Pro 512GB 遠峰藍色 支持移動聯通電信5G 雙卡雙待手機"}# 這種方式,同樣的id會覆蓋原有的PUT goods/_doc/2{  "id": 2,  "brandName": "Apple",  "categoryName": "手機",  "createTime": "2023-10-22 19:12:56",  "price": 8799,  "saleNum": 599,  "status": 0,  "stock": 1000,  "title": "Apple iPhone 15 Pro 256GB 遠峰藍色 支持移動聯通電信5G 雙卡雙待手機"}

(2) 更新文檔Cmy28資訊網——每日最新資訊28at.com

POST goods/_update/1{  "doc": {    "title":"Apple iPhone 13 Pro (A2639) 256GB 遠峰藍色 支持移動聯通電信5G 雙卡雙待手機111"  }}

(3) 刪除文檔Cmy28資訊網——每日最新資訊28at.com

DELETE goods/_doc/2

(4) 獲取文檔Cmy28資訊網——每日最新資訊28at.com

# 獲取單個文檔GET goods/_doc/1# 批量獲取GET books/_doc/_mget{  "ids": ["1","2"]}

2.Match查詢

Match查詢會對查詢內容做分詞,然后根據倒排索引去匹配文檔。Term查詢對查詢內容不做分詞,直接去倒排索引里去匹配文檔。Cmy28資訊網——每日最新資訊28at.com

(1) 查詢所有Cmy28資訊網——每日最新資訊28at.com

POST goods/_search{  "query": {    "match_all": {          }  }}

(2) match_phrase短語查詢Cmy28資訊網——每日最新資訊28at.com

POST goods/_search{  "query": {    "match_phrase": {      "title": "支持"    }  }}

(3) 匹配查詢Cmy28資訊網——每日最新資訊28at.com

POST goods/_search{  "query": {    "match": {      "title": "移動多余"    }  }}

(4) 模糊匹配查詢Cmy28資訊網——每日最新資訊28at.com

POST goods/_search{  "query": {    "wildcard": {      "title": {        "value": "*鞋"      }    }  }}

4.Term查詢

Term查詢對查詢內容不做分詞,直接去倒排索引里去匹配文檔。Cmy28資訊網——每日最新資訊28at.com

POST goods/_search{  "query": {    "term": {      "title": {        "value": "手機"      }    }  }}# 匹配多個termPOST goods/_search{  "query": {    "terms": {      "title": [        "雙卡",        "待"      ]    }  }}

5.組合查詢

復雜查詢基本會用到bool關鍵字。Cmy28資訊網——每日最新資訊28at.com

(1) bool + mustCmy28資訊網——每日最新資訊28at.com

# 布爾查詢,可以組合多個過濾語句來過濾文檔POST goods/_search{  "query": {    "bool": {      "must": [        {          "term": {            "title": {              "value": "Wolfgang Mauerer"            }          }        },        {          "term": {            "date": {              "value": "2010-06-01"            }          }        }      ]    }  }}# 匹配多個字段GET product/_search{  "query": {    "bool": {      "must": [        { "match_phrase": { "name": "連衣裙" } },        { "match_phrase": { "en_intro": "korean" } },        { "match_phrase": { "intro": "御姐" } }      ]    }  }}

(2) bool + filter + rangeCmy28資訊網——每日最新資訊28at.com

POST books/_search{  "query": {    "bool": {      "must": [        {          "term": {            "author": {              "value": "Wolfgang Mauerer"            }          }        }      ],      "filter": [        {          "term": {            "date": {              "value": "2010-06-01"            }          }        }      ]    }  }}POST goods/_search{  "query": {    "bool": {      "must": [        {          "match": {            "title": "華為"          }        }      ],      "filter": [        {          "range": {            "price": {              "gte": 5000,              "lte": 10000            }          }        }      ]    }  }}

6.翻頁查詢

(1) Scroll分頁Cmy28資訊網——每日最新資訊28at.com

# 第一次使用 scroll APIPOST goods/_search?scroll=2m{  "query": {    "match_all": {}  },  "size": 2}# 進行翻頁POST /_search/scroll                                                    {  "scroll" : "2m",     "scroll_id" : "FGluY2x1ZGVfY29udGV4dF91dWlkDXF1ZXJ5QW5kRmV0Y2gBFkxBWkYwOGw2U1dPSF94aHZTelFkaWcAAAAAAAADHhZoU05ERFl3WFIycXM3M3JKMmRQVkJB" }

(2) from + size分頁Cmy28資訊網——每日最新資訊28at.com

POST goods/_search{  "query": {    "match_all": {        }  },  "from": 6,  "size": 2,  "sort": [    {      "price": {        "order": "asc"      }    }  ]}

7.聚合查詢

(1) 最大、最小、平均Cmy28資訊網——每日最新資訊28at.com

POST goods/_search{  "aggs": {    "avg_price": {      "avg": {        "field": "price"      }    }  }}POST goods/_search{  "aggs": {    "min_price": {      "min": {        "field": "price"      }    }  }}POST goods/_search{  "aggs": {    "max_price": {      "max": {        "field": "price"      }    }  }}

(2) 范圍查詢Cmy28資訊網——每日最新資訊28at.com

POST goods/_search{  "query": {    "range": {      "price": {        "gte": 10,        "lte": 20      }    }  }}

(3) 高亮查詢Cmy28資訊網——每日最新資訊28at.com

POST goods/_search{  "query": {    "match": {      "title": "跑鞋"    }  },  "highlight": {    "fields": {      "body": {        "pre_tags": [          "<font color='red'>"        ],        "post_tags": [          "</font>"        ]      },      "title": {}    }  }}

(4) 分組查詢Cmy28資訊網——每日最新資訊28at.com

POST goods/_search{  "aggs": {    "brandNameName": {      "terms": {        "field": "brandName"      }    }  }}

(5) 子查詢Cmy28資訊網——每日最新資訊28at.com

POST goods/_search{  "aggs": {    "brandNameName": {      "terms": {        "field": "brandName"      },      "aggs": {        "avgPrice": {          "avg": {            "field": "price"          }        }      }    }  }}

8.分析分詞

相對一些分析進行分析時,看看ES怎么拆分的,可以用這個查看。Cmy28資訊網——每日最新資訊28at.com

POST _analyze{  "analyzer": "standard",  "text": "Linus 在90年代開發出了linux操作系統"}POST _analyze{      "analyzer": "ik_max_word",    "text": "Linus 在90年代開發出了linux操作系統"  }POST _analyze{      "analyzer": "ik_smart",    "text": "Linus 在90年代開發出了linux操作系統"  }POST _analyze{      "analyzer": "ik_smart",    "text": "中華人民共和國國歌"  }POST _analyze{      "analyzer": "ik_max_word",    "text": "中華人民共和國國歌"  }

三、總結

本文主要介紹了常見DSL的用法,主要是幫助記憶,避免一些基本的操作還要去查詢文檔的尷尬。記住以下3句話,即可記住DSL的輪廓了:Cmy28資訊網——每日最新資訊28at.com

  • 索引、文檔和查詢
  • Match、Term和Bool
  • 還有翻頁和聚合

本文鏈接:http://www.www897cc.com/showinfo-26-15616-0.html巧記Elasticsearch常用DSL語法

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 用示例和應用程序了解必要的Golang庫

下一篇: 面試挑戰:解密百度產品經理面試題——為什么牛奶盒是方的,而可樂罐是圓的?

標簽:
  • 熱門焦點
  • 對標蘋果的靈動島 華為帶來實況窗功能

    繼蘋果的靈動島之后,華為也在今天正式推出了“實況窗”功能。據今天鴻蒙OS 4.0的現場演示顯示,華為的實況窗可以更高效的展現出實時通知,比如鎖屏上就能看到外賣、打車、銀行
  • Golang 中的 io 包詳解:組合接口

    io.ReadWriter// ReadWriter is the interface that groups the basic Read and Write methods.type ReadWriter interface { Reader Writer}是對Reader和Writer接口的組合,
  • 三言兩語說透設計模式的藝術-單例模式

    寫在前面單例模式是一種常用的軟件設計模式,它所創建的對象只有一個實例,且該實例易于被外界訪問。單例對象由于只有一個實例,所以它可以方便地被系統中的其他對象共享,從而減少
  • 分布式系統中的CAP理論,面試必問,你理解了嘛?

    對于剛剛接觸分布式系統的小伙伴們來說,一提起分布式系統,就感覺高大上,深不可測。而且看了很多書和視頻還是一臉懵逼。這篇文章主要使用大白話的方式,帶你理解一下分布式系統
  • 2023年,我眼中的字節跳動

    此時此刻(2023年7月),字節跳動從未上市,也從未公布過任何官方的上市計劃;但是這并不妨礙它成為中國最受關注的互聯網公司之一。從2016-17年的抖音強勢崛起,到2018年的&ldquo;頭騰
  • 最“俊美”淘寶賣家,靠直播和短視頻圈粉,上架秒光,年銷3000萬

    來源 | 電商在線文|易琬玉編輯|斯問受訪店鋪:Ringdoll戒之人形圖源:微博@御座的黃山、&ldquo;Ringdoll戒之人形&rdquo;淘寶店鋪有關外貌的評價,黃山已經聽累了。生于1985年的他,哪
  • 阿里大調整

    來源:產品劉有媒體報道稱,近期淘寶天貓集團啟動了近年來最大的人力制度改革,涉及員工績效、層級體系等多個核心事項,目前已形成一個初步的&ldquo;征求意見版&rdquo;:1、取消P序列
  • 小米汽車電池信息疑似曝光:容量101kWh,支持800V高壓快充

    7月14日消息,今日一名博主在社交媒體發布了一張疑似小米汽車電池信息的照片,顯示該電池包正是寧德時代麒麟電池,容量為101kWh,電壓為726.7V,可以預測小
  • 半導體需求下滑 三星電子DS業務部門今年營業虧損預計超10萬億韓元

    7月17日消息,據外媒報道,去年下半年開始的半導體需求下滑,影響到了三星電子、SK海力士、英特爾等諸多廠商,營收明顯下滑,部分廠商甚至出現了虧損。作為
Top 主站蜘蛛池模板: 敖汉旗| 扎囊县| 安远县| 德令哈市| 双牌县| 永定县| 广饶县| 依兰县| 团风县| 枞阳县| 大同市| 睢宁县| 灌阳县| 孙吴县| 石景山区| 宁晋县| 锦州市| 黄龙县| 庐江县| 聂拉木县| 日喀则市| 扶余县| 团风县| 西昌市| 彰化县| 瓦房店市| 和平县| 虞城县| 长治市| 罗平县| 韩城市| 鹤峰县| 莱芜市| 枣强县| 石城县| 偏关县| 岗巴县| 宁陕县| 垫江县| 峡江县| 侯马市|