iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 21
0

上一篇簡易的Watcher如果還無法滿足需求,可以參考進階設定的Watcher
要設定Watcher需要對 DSL 有一定了解

什麼是DSL

查詢表達式(Query DSL)是一種非常靈活又富有表現力的 查詢語言。 Elasticsearch 使用它可以以簡單的 JSON 接口來展現 Lucene 功能的絕大部分。它可以使你的查詢語句更靈活、更精確、易讀和易調試。
舉個例子:

GET /_search
{
  "query": {
    "bool": {
      "must": [
        { "match": { "title":   "Search"        }},
        { "match": { "content": "Elasticsearch" }}
      ],
      "filter": [
        { "term":  { "status": "published" }},
        { "range": { "publish_date": { "gte": "2020-09-29" }}}
      ]
    }
  }
}

查詢的分類

  • Leaf query clauses (簡單查詢)
  • 簡單查詢可以單獨使用,針對指定的字段查詢指定的值,如 match,term或 range查詢
  • Compound query clauses (複雜查詢)
  • 複雜查詢可以包含簡單查詢或者其它的複雜查詢語句,並用於以邏輯方式組合多個查詢(例如 bool或dis_max查詢),或更改其行為(例如 constant_score查詢)。

Query(查詢)和Filter(過濾)

  • Query 查詢注重的是"匹配程度",文檔與該查詢子句的匹配程度如何,記錄在_score字段中最後按照_score來排序
  • Filter 過濾注重的是"是否匹配",不計算_score,過濾結果會被存在快取中性能比較好

上一篇
Day20-設定簡易的Watcher
下一篇
Day22-設定進階的Watcher-DSL查詢
系列文
Elastic Stack 是一把梭,用起來再說!!!30

尚未有邦友留言

立即登入留言