# 使用介面 開發工具
最後一個Management
Dev Tools : 提供一個在 kibana 直接呼叫 elasticsearch 的方式

查看當前有的索引

安裝及執行部分
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": "校園" //?匹配任何字元並 *匹配零個或多個字元
}
}
}
```

**match_phrase查詢**
```
POST /verdict2023/_search //連續 (AB)
{
"track_total_hits": true, //確切數量計算
"size": 1000, //抓前1000筆
"query": {
"match_phrase": { //用於查找確切的短語
"jFULL": "校園" //?匹配任何字元並 *匹配零個或多個字元
}
}
}
```

---
# 查詢索引 多索引
```
POST /verdict20*/_search
{
"track_total_hits": true,
"size": 1000,
"query": {
"match_phrase": {
"jFULL": "民法 "
}
}
}
```
測試效果

查詢民法 第一次13s 第二次6s 資料2013-2023

---
# 多種查詢
**指定年份查詢**
```
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
}
}
}
}
```

```
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