Поиск по диапазону дат в Элассандре - PullRequest
0 голосов
/ 31 октября 2018

Я создал индекс, как показано ниже.

curl -XPUT -H 'Content-Type: application/json' 'http://x.x.x.x:9200/date_index' -d '{
  "settings" : { "keyspace" : "keyspace1"},
  "mappings" : {
    "table1" : {
      "discover":"sent_date",
      "properties" : {
        "sent_date" : { "type": "date", "format": "yyyy-MM-dd HH:mm:ssZZ" }
        }
    }
  }
}'

Мне нужно найти результаты, относящиеся к диапазону дат, например, «от»: «2039-05-07 11: 22: 34 + 0000», «до»: «2039-05-07 11: 22: 34+ 0000 "оба включительно. Я пытаюсь так,

curl -XGET -H 'Content-Type: application/json' 'http://x.x.x.x:9200/date_index/_search?pretty=true' -d '
{
  "query" : {
    "aggregations" : {

    "date_range" : {
      "sent_date" : {
        "from" : "2039-05-07 11:22:34+0000",
        "to" : "2039-05-07 11:22:34+0000"
        }
      }
    }

  }
}'

Я получаю ошибку , как показано ниже.

  "error" : {
    "root_cause" : [
      {
        "type" : "parsing_exception",
        "reason" : "no [query] registered for [aggregations]",
        "line" : 4,
        "col" : 22
      }
    ],
    "type" : "parsing_exception",
    "reason" : "no [query] registered for [aggregations]",
    "line" : 4,
    "col" : 22
  },
  "status" : 400

Пожалуйста, сообщите.

1 Ответ

0 голосов
/ 01 ноября 2018

Похоже, что запрос искажен. Пожалуйста, смотрите документацию по агрегации диапазонов дат на https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-daterange-aggregation.html и обратите внимание на различия:

  • вы вводите запрос, не задавая ни одного - он вам нужен?
  • вы должны использовать аггс вместо агрегации
  • вы должны назвать свою агрегацию
...