0

うまく機能する2つのフィルターがあります:1.フレーズ「NA」に一致します

{
  "query": {
    "match": {
      "region.keyword": {
        "query": "NA",
        "type": "phrase"
      }
    }
  }
}

2. フィルタを取得して 0 ~ 7 以外のすべての時間を表示するスクリプト フィールドを使用します。

{
  "script": {
    "script": {
      "inline": "boolean gte(Supplier s, def v) {return s.get() >= v} boolean lt(Supplier s, def v) {return s.get() < v}gte(() -> { doc['@timestamp'].date.hourOfDay }, params.gte) && lt(() -> { doc['@timestamp'].date.hourOfDay }, params.lt)",
      "params": {
        "gte": 0,
        "lt": 7,
        "value": ">=0 <7"
      },
      "lang": "painless"
    }
  }
}

これを 1 つのフィルターにグループ化して、「NA 時間は 0 から 7 の間ではない」ようにします。このようにして、地域と時間を変更し、追加のフィルターを適用できます。

また、フィルターを追加すると 1 つのフィールドにしか入れられないため、このようなカスタム フィルターを追加する方法もわかりません。

4

1 に答える 1