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

當(dāng)前位置:首頁(yè) > 科技  > 軟件

巧記Elasticsearch常用DSL語(yǔ)法

來(lái)源: 責(zé)編: 時(shí)間:2023-10-29 21:45:59 342觀看
導(dǎo)讀記知識(shí)先記輪廓,關(guān)于DSL語(yǔ)法的輪廓,記住以下三句話即可:索引、文檔和查詢Match、Term和Bool還有翻頁(yè)和聚合一、又愛(ài)又恨的DSL使用Elasticsearch時(shí),我們一般是調(diào)用RestClient API的方式讀取和寫(xiě)入集群數(shù)據(jù)。有時(shí)也會(huì)使用工

記知識(shí)先記輪廓,關(guān)于DSL語(yǔ)法的輪廓,記住以下三句話即可:u0z28資訊網(wǎng)——每日最新資訊28at.com

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

u0z28資訊網(wǎng)——每日最新資訊28at.com

一、又愛(ài)又恨的DSL

使用Elasticsearch時(shí),我們一般是調(diào)用RestClient API的方式讀取和寫(xiě)入集群數(shù)據(jù)。有時(shí)也會(huì)使用工具查閱和操作數(shù)據(jù),比如:使用Chrome插件Multi Elasticsearch Head或者Cerebro、Kibana。筆者建議使用Kibana的方式操作集群數(shù)據(jù),使用Multi Elasticsearch Head或者Cerebro從整體上觀察集群。u0z28資訊網(wǎng)——每日最新資訊28at.com

既然是操作集群數(shù)據(jù),那就繞不開(kāi)ES的DSL語(yǔ)法 — 一個(gè)讓人又愛(ài)又恨的語(yǔ)法。u0z28資訊網(wǎng)——每日最新資訊28at.com

  • 愛(ài):Http Restful風(fēng)格設(shè)計(jì)的,使用上簡(jiǎn)單,隨手?jǐn)]起一個(gè)工具都支持Http訪問(wèn)。
  • 恨:語(yǔ)法太難記,語(yǔ)法格式在設(shè)計(jì)上有點(diǎn)反人類(lèi),真不知道設(shè)計(jì)者們是怎么想的。不過(guò)你覺(jué)得有更好的方案嗎?

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

二、操作數(shù)據(jù)

在Kibana上操作ES數(shù)據(jù)的方式如下:u0z28資訊網(wǎng)——每日最新資訊28at.com

u0z28資訊網(wǎng)——每日最新資訊28at.com

1.操作索引

(1) 創(chuàng)建索引:u0z28資訊網(wǎng)——每日最新資訊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"      }    }  },  # 根據(jù)情況選擇是否要修改  "settings": {    "number_of_shards": 2,    "number_of_replicas": 2  }}

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

DELETE goods

(3) 重建索引u0z28資訊網(wǎng)——每日最新資訊28at.com

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

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

2.操作文檔

(1) 創(chuàng)建文檔u0z28資訊網(wǎng)——每日最新資訊28at.com

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

(2) 更新文檔u0z28資訊網(wǎng)——每日最新資訊28at.com

POST goods/_update/1{  "doc": {    "title":"Apple iPhone 13 Pro (A2639) 256GB 遠(yuǎn)峰藍(lán)色 支持移動(dòng)聯(lián)通電信5G 雙卡雙待手機(jī)111"  }}

(3) 刪除文檔u0z28資訊網(wǎng)——每日最新資訊28at.com

DELETE goods/_doc/2

(4) 獲取文檔u0z28資訊網(wǎng)——每日最新資訊28at.com

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

2.Match查詢

Match查詢會(huì)對(duì)查詢內(nèi)容做分詞,然后根據(jù)倒排索引去匹配文檔。Term查詢對(duì)查詢內(nèi)容不做分詞,直接去倒排索引里去匹配文檔。u0z28資訊網(wǎng)——每日最新資訊28at.com

(1) 查詢所有u0z28資訊網(wǎng)——每日最新資訊28at.com

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

(2) match_phrase短語(yǔ)查詢u0z28資訊網(wǎng)——每日最新資訊28at.com

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

(3) 匹配查詢u0z28資訊網(wǎng)——每日最新資訊28at.com

POST goods/_search{  "query": {    "match": {      "title": "移動(dòng)多余"    }  }}

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

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

4.Term查詢

Term查詢對(duì)查詢內(nèi)容不做分詞,直接去倒排索引里去匹配文檔。u0z28資訊網(wǎng)——每日最新資訊28at.com

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

5.組合查詢

復(fù)雜查詢基本會(huì)用到bool關(guān)鍵字。u0z28資訊網(wǎng)——每日最新資訊28at.com

(1) bool + mustu0z28資訊網(wǎng)——每日最新資訊28at.com

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

(2) bool + filter + rangeu0z28資訊網(wǎng)——每日最新資訊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.翻頁(yè)查詢

(1) Scroll分頁(yè)u0z28資訊網(wǎng)——每日最新資訊28at.com

# 第一次使用 scroll APIPOST goods/_search?scroll=2m{  "query": {    "match_all": {}  },  "size": 2}# 進(jìn)行翻頁(yè)P(yáng)OST /_search/scroll                                                    {  "scroll" : "2m",     "scroll_id" : "FGluY2x1ZGVfY29udGV4dF91dWlkDXF1ZXJ5QW5kRmV0Y2gBFkxBWkYwOGw2U1dPSF94aHZTelFkaWcAAAAAAAADHhZoU05ERFl3WFIycXM3M3JKMmRQVkJB" }

(2) from + size分頁(yè)u0z28資訊網(wǎng)——每日最新資訊28at.com

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

7.聚合查詢

(1) 最大、最小、平均u0z28資訊網(wǎng)——每日最新資訊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) 范圍查詢u0z28資訊網(wǎng)——每日最新資訊28at.com

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

(3) 高亮查詢u0z28資訊網(wǎng)——每日最新資訊28at.com

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

(4) 分組查詢u0z28資訊網(wǎng)——每日最新資訊28at.com

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

(5) 子查詢u0z28資訊網(wǎng)——每日最新資訊28at.com

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

8.分析分詞

相對(duì)一些分析進(jìn)行分析時(shí),看看ES怎么拆分的,可以用這個(gè)查看。u0z28資訊網(wǎng)——每日最新資訊28at.com

POST _analyze{  "analyzer": "standard",  "text": "Linus 在90年代開(kāi)發(fā)出了linux操作系統(tǒng)"}POST _analyze{      "analyzer": "ik_max_word",    "text": "Linus 在90年代開(kāi)發(fā)出了linux操作系統(tǒng)"  }POST _analyze{      "analyzer": "ik_smart",    "text": "Linus 在90年代開(kāi)發(fā)出了linux操作系統(tǒng)"  }POST _analyze{      "analyzer": "ik_smart",    "text": "中華人民共和國(guó)國(guó)歌"  }POST _analyze{      "analyzer": "ik_max_word",    "text": "中華人民共和國(guó)國(guó)歌"  }

三、總結(jié)

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

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

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

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: 用示例和應(yīng)用程序了解必要的Golang庫(kù)

下一篇: 面試挑戰(zhàn):解密百度產(chǎn)品經(jīng)理面試題——為什么牛奶盒是方的,而可樂(lè)罐是圓的?

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • K60 Pro官方停產(chǎn) 第三方瞬間漲價(jià)

    雖然沒(méi)有官方宣布,但Redmi的一些高管也已經(jīng)透露了,Redmi K60 Pro已經(jīng)停產(chǎn)且不會(huì)補(bǔ)貨,這一切都是為了即將到來(lái)的K60 Ultra鋪路,屬于廠家的正常操作。但有意思的是該機(jī)在停產(chǎn)之后
  • .NET 程序的 GDI 句柄泄露的再反思

    一、背景1. 講故事上個(gè)月我寫(xiě)過(guò)一篇 如何洞察 C# 程序的 GDI 句柄泄露 文章,當(dāng)時(shí)用的是 GDIView + WinDbg 把問(wèn)題搞定,前者用來(lái)定位泄露資源,后者用來(lái)定位泄露代碼,后面有朋友反
  • 本地生活這塊肥肉,拼多多也想吃一口

    出品/壹覽商業(yè) 作者/李彥編輯/木魚(yú)拼多多也看上本地生活這塊蛋糕了。近期,拼多多在App首頁(yè)&ldquo;充值中心&rdquo;入口上線了本機(jī)生活界面。壹覽商業(yè)發(fā)現(xiàn),該界面目前主要
  • 10天營(yíng)收超1億美元,《星鐵》比《原神》差在哪?

    來(lái)源:伯虎財(cái)經(jīng)作者:陳平安即便你沒(méi)玩過(guò)《原神》,你一定聽(tīng)說(shuō)過(guò)的它的大名。恨它的人把《原神》開(kāi)服那天稱作是中國(guó)游戲史上最黑暗的一天,有粉絲因?yàn)樗髂嵩赑S平臺(tái)上線《原神》,怒而
  • 年輕人的“職場(chǎng)羞恥感”,無(wú)處不在

    作者:馮曉亭 陶 淘 李 欣 張 琳 馬舒葉來(lái)源:燃次元&ldquo;人在職場(chǎng),應(yīng)該選擇什么樣的著裝?&rdquo;近日,在網(wǎng)絡(luò)上,一個(gè)與著裝相關(guān)的帖子引發(fā)關(guān)注,在該帖子里,一位在高級(jí)寫(xiě)字樓亞洲金
  • 三星顯示已開(kāi)始為AR設(shè)備研發(fā)硅基LED微顯示屏

    7月18日消息,據(jù)外媒報(bào)道,隨著蘋(píng)果首款頭顯產(chǎn)品Vision Pro在6月份正式推出,AR/VR/MR等頭顯產(chǎn)品也就將成為各大公司下一個(gè)重要的競(jìng)爭(zhēng)領(lǐng)域,對(duì)顯示屏這一關(guān)
  • iQOO Neo8 Pro即將開(kāi)售:到手價(jià)3099元起 安卓性能最強(qiáng)旗艦

    5月23日,iQOO如期舉行了新品發(fā)布會(huì),全新的iQOO Neo8系列也正式與大家見(jiàn)面,包含iQOO Neo8和iQOO Neo8 Pro兩個(gè)版本,其中標(biāo)準(zhǔn)版搭載高通驍龍8+,而Pro版更
  • 質(zhì)感不錯(cuò)!OPPO K11渲染圖曝光:旗艦IMX890傳感器首次下放

    一直以來(lái),OPPO K系列機(jī)型都保持著較為均衡的產(chǎn)品體驗(yàn),歷來(lái)都是2K價(jià)位的明星機(jī)型,去年推出的OPPO K10和OPPO K10 Pro兩款機(jī)型憑借各自的出色配置,堪稱有
  • 聯(lián)想的ThinkBook Plus下一版曝光,鍵盤(pán)旁邊塞個(gè)平板

    ThinkBook Plus 是聯(lián)想的一個(gè)特殊筆記本類(lèi)別,它在封面放入了一塊墨水屏,也給人留下了較為深刻的印象。據(jù)有人爆料,聯(lián)想的下一款 ThinkBook Plus 可能更特殊,它
Top 主站蜘蛛池模板: 清原| 郴州市| 苏尼特左旗| 靖安县| 安宁市| 鹤庆县| 柳林县| 绥德县| 龙南县| 阳曲县| 茶陵县| 和硕县| 庆元县| 镇雄县| 万全县| 福鼎市| 凭祥市| 咸阳市| 锡林郭勒盟| 邹城市| 长武县| 隆子县| 佛坪县| 美姑县| 乐东| 娱乐| 黔东| 金昌市| 蕉岭县| 佛冈县| 五指山市| 拉孜县| 广昌县| 临安市| 平罗县| 炎陵县| 新和县| 盘锦市| 平乡县| 钟祥市| 甘泉县|