Длина ключевого слова Elasticsearch более 6 - PullRequest
0 голосов
/ 12 октября 2018

Я на самом деле хочу собрать все значения поля в моем индексе, длина которого в некотором диапазоне дат превышает 6.

Я мог бы получить все значения поля, сгруппированные по этому ключевому слову.Теперь я хочу добавить условие, чтобы проверить, является ли длина ключевого слова больше 6 или нет.Вот запрос, до которого я мог бы придумать.

"size": 0, 
 "aggs": {
  "range":{
    "date_range": {
     "field": "timestamp",
     "ranges": [
       {
         "from": "now-1d/d",
         "to": "now"
       }
     ]
   },
   "aggs": {
     "group_by_name":{
       "terms": {
         "field": "name.keyword",
         "size": 100
       } 
     }
   }
  }
 }
}

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете сделать, используя простой безболезненный скрипт.проверить документы агрегации

 {
    "size": 0,
      "aggs": {
        "range": {
          "date_range": {
            "field": "timestamp",
            "ranges": [
              {
                "from": "now-1d/d",
                "to": "now"
              }
            ]
          },
          "aggs": {
            "group_by_name": {
              "terms": {
                "script": {
                  "source": """
                        if (doc['name.keyword'].value.toString().length() > 6) {
                          return doc['name.keyword'].value;
                        }
                        """,
                  "lang": "painless"
                },
                "size": 100
              }
            }
          }
        }
      }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...