Как выполнить Elastsearch multi_match И BOOL вместе? - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь использовать запрос, как показано ниже,

 {
   "query":{
      "bool":{
         "must":[
            {
               "range":{
                  "@timestamp":{
                     "from":"2018-09-01T08:35:11.000Z",
                     "to":"2018-10-01T08:35:11.000Z"
                  }
               }
            },
            "multi_match":{
               "query":"世界の人々の祝祭、第23回冬季",
               "fields":"message"
            }
         ]
      }
   },
   "from":0,
   "size":10000
}

, но получаю сообщение об ошибке:

{
  "error" : {
    "root_cause" : [
  {
        "type" : "json_parse_exception",
        "reason" : "Unexpected character (':' (code 58)): was expecting comma to separate Array entries\n at [Source: org.elasticsearch.transport.netty4.ByteBufStreamInput@4eacc26c; line: 21, column: 27]"
      }
  },
  "status" : 500
}

, но если без диапазона отметок времени, он работает

"query": {
    "multi_match": {
      "query": "世界の人々の祝祭、第23回冬季",
      "fields": [
        "message"
      ]
     }
 }

Что не так в запросе?Как выполнить multi_match И BOOL вместе?

1 Ответ

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

Вам нужно также обернуть запрос multi_match в фигурные скобки

 {
   "query":{
      "bool":{
         "must":[
            {
               "range":{
                  "@timestamp":{
                     "from":"2018-09-01T08:35:11.000Z",
                     "to":"2018-10-01T08:35:11.000Z"
                  }
               }
            },
            {
              "multi_match":{
                 "query":"世界の人々の祝祭、第23回冬季",
                 "fields":"message"
              }
            }
         ]
      }
   },
   "from":0,
   "size":10000
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...