ElasticSearch進階篇之-Query DSL

      網友投稿 998 2025-03-31

      elasticsearch官網:https://www.elastic.co/guide/en/elasticsearch/reference/7.4/getting-started-search.html

      1.ES中的檢索方式

      在ElasticSearch中支持兩種檢索方式

      通過使用REST request URL 發送檢索參數(uri+檢索參數)

      通過使用 REST request body 來發送檢索參數 (uri+請求體)

      第一種方式

      GET bank/_search # 檢索bank下的所有信息,包括 type 和 docs

      GET bank/_search?q=*&sort=account_number:asc

      響應結果信息

      第二種方式

      通過使用 REST request body 來反射檢索參數 (uri+請求體)

      ElasticSearch進階篇之-Query DSL

      GET bank/_search

      { "query":{ "match_all":{} }, "sort":[ { "account_number":"desc" } ] }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      2.Query DSL

      2.1 基本語法

      ElasticSearch提供了一個可以執行的JSON風格的DSL(domain-specific language 領域特定語言),這個被稱為Query DSL,該查詢語言非常全面,并且剛開始的時候感覺有點復雜,真正學好它的方法就是從一些基礎案例開始的。

      完整的語法結構

      { QUERY_NAME:{ ARGUMENT:VALUE, ARGUMENT:VALUE,... } }

      1

      2

      3

      4

      5

      6

      如果是針對某個字段,那么它的結構為

      { QUERY_NAME:{ FIELD_NAME:{ ARGUMENT:VALUE, ARGUMENT:VALUE,... } } }

      1

      2

      3

      4

      5

      6

      7

      8

      2.2 match

      上面我們用到來的match_all是匹配所有的數據,而我們現在要講的match是條件匹配

      如果對應的字段是基本類型(非字符串類型),則是精確匹配。

      GET bank/_search { "query":{ "match":{ "account_number":20 } } }

      1

      2

      3

      4

      5

      6

      7

      8

      match返回的是 account_number:20的記錄

      如果對應的字段是字符串類型,則是全文檢索

      GET bank/_search { "query":{ "match":{ "address":"mill" } } }

      1

      2

      3

      4

      5

      6

      7

      8

      match返回的就是address中包含mill字符串的記錄

      2.3 match_phrase

      將需要匹配的值當成一個整體單詞(不分詞)進行檢索,短語匹配

      GET bank/_search { "query":{ "match_phrase":{ "address":"mill road" } } }

      1

      2

      3

      4

      5

      6

      7

      8

      查詢出address中包含 mill road的所有記錄,并給出相關性得分

      2.4 multi_match[多字段匹配]

      GET bank/_search { "query":{ "multi_match":{ "query":"mill road", "fields":["address","state"] } } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      查詢出state或者address中包含 mill road的記錄

      2.5 bool[復合查詢]

      布爾查詢又叫組合查詢,bool用來實現復合查詢,

      bool把各種其它查詢通過 must(與)、must_not(非)、should(或)的方式進行組合

      復合語句可以合并任何其他查詢語句,包括復合語句也可以合并,了解這一點很重要,這意味著,復合語句之間可以相互嵌套,可以表達非常復雜的邏輯。

      GET /bank/_search { "query": { "bool": { "must": [ { "match": { "age": "40" } } ], "must_not": [ { "match": { "state": "ID" } } ] } } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      2.6 filter[結果過濾]

      并不是所有的查詢都需要產生分數,特別是那些僅用于"filtering"的文檔,為了不計算分數,ElasticSearch會自動檢查場景并且優化查詢的執行。

      GET /bank/_search { "query": { "bool": { "must": { "match_all": {} }, "filter": { "range": { "balance": { "gte": 20000, "lte": 30000 } } } } } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      2.7 term

      和match一樣,匹配某個屬性的值,全文檢索字段用match,其他非text字段匹配用term

      GET bank/_search { "query":{ "term":{ "account_number":20 } } }

      1

      2

      3

      4

      5

      6

      7

      8

      好了索引查詢這塊就介紹到這兒了

      Elasticsearch 實時流計算服務 CS

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:wps卡頓怎么辦(如何解決wps引起的電腦卡頓)
      下一篇:使用excel函數公式合并多個工作表的方法
      相關文章
      亚洲日韩v无码中文字幕| 亚洲国产日韩成人综合天堂| 亚洲av无码无在线观看红杏| 国产福利电影一区二区三区,亚洲国模精品一区| 自拍日韩亚洲一区在线| 亚洲毛片在线免费观看| 亚洲精品国产啊女成拍色拍 | 亚洲国产精品久久久久| 亚洲国产精品无码久久久秋霞2 | 国产亚洲人成A在线V网站| 久久久久亚洲爆乳少妇无| 亚洲人成人网站在线观看| 亚洲伦乱亚洲h视频| 亚洲综合色区在线观看| 中文亚洲成a人片在线观看| 日韩精品亚洲aⅴ在线影院| 国产亚洲A∨片在线观看 | 亚洲卡一卡二卡乱码新区| 亚洲AV无码乱码麻豆精品国产| 亚洲日本国产精华液| 亚洲免费在线视频观看| 亚洲中文字幕久在线| 中文字幕亚洲综合久久综合| 亚洲色大成网站www尤物| 亚洲国产成人AV在线播放| 朝桐光亚洲专区在线中文字幕| 无码欧精品亚洲日韩一区夜夜嗨| 国产亚洲漂亮白嫩美女在线| 久久亚洲欧洲国产综合| 亚洲精品无码国产| 亚洲午夜精品一区二区| 亚洲精品视频观看| 亚洲人成图片网站| 亚洲AV成人精品日韩一区| 亚洲精品老司机在线观看| 亚洲乱色熟女一区二区三区丝袜| 久久精品亚洲视频| 亚洲喷奶水中文字幕电影| 亚洲国产精品自在自线观看| 国产区图片区小说区亚洲区| 日韩精品亚洲aⅴ在线影院|