Запрос Elasticsearch для возврата только 1 данных в Elasticsearch Head Extention - PullRequest
0 голосов
/ 31 марта 2020

Мои данные в поле user.created_at как показано ниже

Tue Mar 10 23:03:00 +0000 2020
Tue Mar 10 04:29:18 +0000 2020
Tue Jan 21 08:45:43 +0000 2020
Tue Mar 10 00:11:45 +0000 2020
Tue Jan 28 04:11:45 +0000 2020
Sun Mar 08 10:19:19 +0000 2020

И я попытался запросить ES как:

{
 "query": {
   "bool": {
     "must": [
       {
        "match": {
          "sentiment": "neutral"
         }
        }
        ,
       {
        "wildcard": {
          "user.created_at": "*2020"
         }
       }
       ,
       {
        "match": {
          "user.created_at": "Tue Mar 10"
         }
       }
      ],
      "must_not": [ ],
      "should": [ ]
       }
    }}

Но есть также другие данные, которые я тоже не хочу Результат продолжает показывать другую дату. Как показано ниже

Продолжать показывать другую дату, а не то, что я хочу

Мой вопрос: как мне вернуть только одну информацию с датой Вт 10 марта 23: 03:00 +0000 2020 конкретно? Есть ли способ получить только 1 попадание данных с указанной c датой. Я понятия не имею об этом. Пожалуйста, помогите мне.

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Какой у вас created_at тип отображения? Если это date, вы можете использовать запрос range с правильной датой формат :

...
"query": {
    "range": {
      "user.created_at": {
        "gte": "2020-03-10",
        "lt": "2020-03-11"
      }
    }
  }
...
0 голосов
/ 31 марта 2020

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

{
 "query": {
  "bool": {
   "must": [
    {
     "match": {
      "sentiment": "neutral"
     }
    }
    ,
   {
    "wildcard": {
     "user.created_at": "*2020"
    }
   }
   ,
  {
   "match": {
    "user.created_at": "Tue"
   }
  }
  ,
  {
   "match": {
    "user.created_at": "Mar"
   }
  }
  ,
  {
   "match": {
    "user.created_at": "10"
    }
   }
   ,
   {
    "match": {
     "user.created_at": "Tue Mar"
    }
   }
   ,
   {
    "match": {
      "user.created_at": "Mar 10"
     }
   }
   ],
   "must_not": [ ],
   "should": [ ]
  }
 },
 "from": 0,
 "size": 250,
 "sort": [ ],
 "aggs": { }
}
...