# 使用介面 開發工具 最後一個Management Dev Tools : 提供一個在 kibana 直接呼叫 elasticsearch 的方式 ![](https://hackmd.io/_uploads/SyOoqivgT.png) 查看當前有的索引 ![](https://hackmd.io/_uploads/BJ1biiwga.png)![](https://hackmd.io/_uploads/SJ84ssvxa.png) 安裝及執行部分 https://hackmd.io/@Lt-jy5MDTimfsgLHXt6fiQ/ES安裝相關 --- 當前有典網址 https://2aee-2001-b011-8007-340f-d5c5-d947-59b2-3747.ngrok-free.app (mongodb) # 一些可能會用到的 ``` POST /verdict2023/_search //隨機抓5筆顯示 { "size": 5 } GET /verdict2023/_mapping //查看當前格式 如:"jFULL": { "type": "text", ``` # 查詢索引2023 以下中索引都是verdict2023 使用其他索引要進行更換 筆數為value: **match查詢** ``` POST /verdict2023/_search // 模糊查詢 (AB、A、B) { "track_total_hits": true, "size": 1000, "query": { "match": { "jFULL": "校園" //?匹配任何字元並 *匹配零個或多個字元 } } } ``` ![](https://hackmd.io/_uploads/BJ8Tehwxp.jpg) **match_phrase查詢** ``` POST /verdict2023/_search //連續 (AB) { "track_total_hits": true, //確切數量計算 "size": 1000, //抓前1000筆 "query": { "match_phrase": { //用於查找確切的短語 "jFULL": "校園" //?匹配任何字元並 *匹配零個或多個字元 } } } ``` ![](https://hackmd.io/_uploads/S1U2lhPe6.jpg) --- # 查詢索引 多索引 ``` POST /verdict20*/_search { "track_total_hits": true, "size": 1000, "query": { "match_phrase": { "jFULL": "民法 " } } } ``` 測試效果 ![](https://hackmd.io/_uploads/B1ev-pwlT.png) 查詢民法 第一次13s 第二次6s 資料2013-2023 ![](https://hackmd.io/_uploads/HkT6ZTwg6.png) --- # 多種查詢 **指定年份查詢** ``` POST /verdict20*/_search //特定年份查詢 { "track_total_hits": true, //確切數量 "size": 1000, //抓前1000筆 "query": { "bool": { "must": [ { "match": { "JYEAR": "110" //年份 } }, { "match_phrase": { "jFULL": "颱風" //關鍵詞 } } ] } } } ``` **指定案件別查詢** ``` POST /verdict20*/_search //特定案件別 { "track_total_hits": true, "size": 1000, "query": { "bool": { "must": [ { "match_phrase": { "jFULL": "松鼠" } }, { "match": { "JCaseType": "V" } } ] } } } ``` **指定法院查詢** ``` POST /verdict*/_search //"JCourtName"區分法院 { "query": { "bool": { "must": [ { "match": { "jFULL": "海岸" } }, { "match": { "JCourtName": "SJE" } } ] } }, "aggs": { "counts_by_jfull": { "terms": { "field": "jFULL.keyword", "size": 10 }, "aggs": { "counts_by_court": { "terms": { "field": "JCourtName.keyword", "size": 10 } } } } } } ``` --- # 左側分類 用索引查詢當前 ``` POST /verdict20*/_search //當前查詢在各索引筆數 { "size": 0, "query": { "match_phrase": { "jFULL": "水果" } }, "aggs": { "counts_by_year": { "terms": { "field": "_index", "size": 50 } } } } ``` ![](https://hackmd.io/_uploads/ryi281_ea.png) ``` POST /verdict20*/_search //當前查詢所屬法院 { "size": 0, "query": { "match_phrase": { "jFULL": "樂園" } }, "aggregations": { "court_counts": { "terms": { "field": "JCourtName" } } } } ``` ``` POST /verdict20*/_search //當前查詢所屬案件 { "query": { "match_phrase": { "jFULL": "海岸" } }, "aggregations": { "jCaseType_counts": { "terms": { "field": "JCaseType" } } }, "size": 0 } ``` **別名** ``` 創造 POST /your-index/_mapping { "properties": { "verdictId": { "type": "alias", "path": "jID" } } } 刪除 DELETE /your-index/_alias/verdictId ``` --- # **引用** 「Match」、「Multi-Match」和「Match Phrase」都是Elasticsearch中的查詢類型,用於在索引中搜尋匹配文件。 Match:匹配查詢用於搜尋包含一個或多個特定術語的文件。它允許部分匹配,並將自動對查詢字串應用一些基本文字分析,以產生要搜尋的術語集。 Multi-Match:多重配對查詢用於搜尋多個欄位中包含一個或多個特定術語的文件。當您想要搜尋多個欄位並且想要對每個欄位使用相同的查詢時,此查詢非常有用。 Match Phrase : Match Phrase用於用於搜尋包含確切短語的文件。它與文件中顯示的完整短語匹配,包括術語順序。與符合查詢不同,符合短語查詢不允許部分符合。 在效能方面,配對查詢通常比符合短語查詢更快,因為它可以使用倒排索引來快速識別符合文件。多匹配查詢通常比匹配查詢慢,因為它需要搜尋多個字段,但它可以提供更全面的結果。 https://blog.csdn.net/admin_15082037343/article/details/118407824 https://zhuanlan.zhihu.com/p/142641300 https://dzone.com/articles/23-useful-elasticsearch-example-queries -- https://blog.zhuliang.ltd/2020/01/backend/Elasticsearch-Nest-attributemapping.html https://blog.zhuliang.ltd/2020/01/backend/Elasticsearch-Nest-Property-name-inference.html