Обновление с Elasticsearch 5.x до 6.x.Мы широко используем запросы строки запросов и обычно конструируем запросы, в которых используются поля разных типов.
В 5.x следующий запрос работал правильно и без ошибок:
{
"query": {
"query_string": {
"query": "my_keyword_field:\"Exact Phrase Here\" my_text_field:(any words) my_other_text_field:\"Another phrase here\" date_field:[2018-01-01 TO 2018-05-01]",
"default_operator": "AND",
"analyzer": "custom_text"
}
}
}
В 6.x этот запрос вернет следующую ошибку:
{
"type": "illegal_state_exception",
"reason": "field:[my_keyword_field] was indexed without position data; cannot run PhraseQuery"
}
Если я заключу фразу в скобки, а не в кавычки, поиск вернет 0 результатов:
{
"query": {
"query_string": {
"query": "my_keyword_field:(Exact Phrase Here)",
"default_operator": "AND",
"analyzer": "custom_text"
}
}
}
Я думаю, это потому, что существует конфликт между тем, как анализатор определяет входящий запрос, и тем, как данныехранится в поле ключевого слова, но фраза (my_keyword_field:"Exact Phrase Here")
сработала в 5.x.
Это больше не поддерживается в 6.x?А если нет, каков путь миграции и / или хороший обходной путь?