Несколько условий match_phrase с другим bool в одном запросе ElasticSearch? - PullRequest
0 голосов
/ 08 января 2020

Я пытаюсь выполнить запрос Elasticsearch, который выполнил поиск в текстовом поле («тело») и возвращает элементы, которые соответствуют по крайней мере одной из двух фраз, которые я предоставляю (ie: «переполнение стека» ИЛИ «переполнение стека») «). Я также хотел бы, чтобы запрос предоставил только результаты, которые появляются после заданной отметки времени, а результаты упорядочены по времени.

Мое текущее решение приведено ниже. Я считаю, что ДОЛЖЕН работать правильно (gte timestamp), но BOOL + ДОЛЖЕН с двумя match_phrases не правильно. Я получаю следующую ошибку:

Unexpected character ('{' (code 123)): was expecting double-quote to start field name

Что я думаю, , потому что у меня там есть две match_phrases?

Это ES отображение и детали ES API, которые я использую, являются здесь .

{"query":
  {"bool":
    {"should":
      [{"match_phrase":
         {"body":"a+phrase"}
       },
       {"match_phrase":
         {"body":"another+phrase"}
       }
      ]
    },
  {"bool":
    {"must":
      [{"range":
        {"created_at:
          {"gte":"thispage"}
        }
       }
      ]}
     }
    },"size":10000,
      "sort":"created_at"
}
...