Миграция на 8.16
В этом разделе рассматриваются изменения, о которых вам следует знать при миграции вашего приложения в Elasticsearch 8.16.
См. также Что нового в 8.17 и Справочные материалы по выпуску.
В версии 8.16.0.
Существенные изменения
Следующие изменения в Elasticsearch 8.16 могут повлиять на ваши приложения и помешать их нормальной работе. Перед обновлением до 8.16 ознакомьтесь с этими изменениями и выполните описанные шаги, чтобы смягчить последствия.
Изменения в модуле анализа
Установить lenient по умолчанию при использовании обновляемых синонимов
Подробности
При конфигурации фильтра токенов synonym или synonym_graph с updateable: true значение по умолчанию lenient теперь будет true.
Последствия
Фильтры токенов synonym или synonym_graph, настроенные с updateable: true, будут игнорировать некорректные синонимы по умолчанию. Это предотвращает ошибки инициализации фрагментов при некорректных синонимах.
Изменения в картах
Изменение базы данных локалей JDK
Подробности
Elasticsearch 8.16 изменяет используемую версию JDK с 22 на 23. Это изменяет базу данных локалей, используемую Elasticsearch, с базы данных COMPAT на базу данных CLDR. Это изменение может вызвать существенные различия в форматах текстовых дат, принимаемых Elasticsearch, и в расчётных датах недель.
Если вы запускаете Elasticsearch 8.16 на версии JDK 22 или ниже, он будет использовать базу данных локалей COMPAT для соответствия поведению 8.15. Однако, начиная с Elasticsearch 9.0, Elasticsearch будет использовать базу данных CLDR независимо от версии JDK, на которой он запускается.
Последствия
Это повлияет на вас, если вы используете пользовательские форматы дат с текстовыми или датами недели. Если вы используете поля дат или расчётные даты недели, которые меняются между базами данных COMPAT и CLDR, то это изменение заставит Elasticsearch отклонить ранее допустимые поля дат как недопустимые данные. Вам может потребоваться изменить код интеграции приема или вывода, чтобы учесть различия между этими двумя версиями JDK.
Начиная с версии 8.15.2, Elasticsearch будет регистрировать предупреждения о устаревании, если вы используете спецификаторы форматов дат, которые могут измениться при обновлении до JDK 23. Эти предупреждения отображаются в Kibana.
Для получения подробных рекомендаций, обратитесь к Различия в информации о локали между версиями JDK и блог Elastic Elastic blog.
Изменения ES|QL
ESQL: Полностью удалить META-ФУНКЦИИ
Подробности
Удаляет недокументированный синтаксис из ESQL: META FUNCTION. Он никогда не был надёжным или действительно полезным. Обратитесь к документации вместо этого.
Последствия
Удаляет недокументированный синтаксис из ESQL: META FUNCTION
Изменения REST API
Переработка RRF-получателя для оценки на фазе переписывания
Подробности
В этом выпуске (8.16) мы внесли существенные изменения в фреймворк получателей и в том, как их можно оценивать, в основном сосредоточившись на составных получателях, таких как rrf и text_similarity_reranker, что позволило нам обеспечить полную составность (т. е. любой получатель может быть вложен под любой составной получатель), а также поддержку дополнительных функций поиска, таких как сжатие, объяснение, агрегации и выделение.
Для обеспечения согласованности и с учётом того, что эта переработка недоступна до 8.16, запросы получателей rrf и text_similarity_reranker теперь будут вызывать исключение в сценарии смешанного кластера, где есть узлы как в текущих, так и в более поздних (т. е. >= 8.16) и предыдущих ( ⇐ 8.15) версиях.
В рамках переработки мы также удалили свойство _rank из ответов получателя rrf.
Последствия
- Пользователи не смогут использовать получателей rrf и text_similarity_reranker в сценарии смешанного кластера с предыдущими выпусками (т. е. до 8.16), и запрос вызовет исключение IllegalArgumentException. - _rank теперь удалено из вывода получателей rrf, поэтому попытка непосредственного парсинга поля вызовет исключение
Обновить телеметрию жизненного цикла потока данных для отслеживания глобального срока хранения
Подробности
В этом выпуске мы представили глобальные настройки срока хранения, которые соответствуют следующим критериям:
- поток данных, управляемый жизненным циклом потока данных,
- поток данных, который не является внутренним потоком данных.
В результате, мы определили различные типы срока хранения:
- хранение данных: срок хранения, настроенный на уровне потока данных пользователем или владельцем потока данных
- глобальный срок хранения по умолчанию: срок хранения, настроенный администратором на уровне кластера и применяемый к любому потоку данных, который не имеет срока хранения и соответствует критериям.
- максимальный глобальный срок хранения: срок хранения, настроенный администратором для защиты от длительных сроков хранения. Любой поток данных, соответствующий критериям, будет придерживаться срока хранения данных, если он не превышает максимальный срок хранения, в противном случае применяется максимальный глобальный срок хранения.
- эффективный срок хранения: срок хранения, который применяется к потоку данных, соответствующему критериям в данный момент времени. Он учитывает все вышеперечисленные настройки срока хранения и определяет срок хранения, который будет действовать.
С учётом вышеизложенных изменений, наличие поля, названного retention в API использования, было неоднозначным. По этой причине мы переименовали его в data_retention и добавили телеметрию о других настройках тоже.
Последствия
Пользователи, использующие поле data_lifecycle.retention, должны использовать data_lifecycle.data_retention
Изменения в модуле обработки
Несоответствие имён в ingest enrich.cache_size
Подробности
Настройка enrich.cache_size временно переименована в enrich.cache.size в 8.16.0 и 8.16.1. Рекомендуемое решение — обновление до версии 8.16.2 или выше. Если это невозможно, временно переименуйте настройку в enrich.cache.size до тех пор, пока вы не сможете обновиться до 8.16.2 или выше. Временное имя устарело и будет удалено в будущей версии.
Последствия
Если ваш кластер имеет настройку enrich.cache_size до обновления до 8.16.0 или 8.16.1, вы можете столкнуться с ошибками, которые препятствуют обновлению.
Устаревшие функции
В Elasticsearch 8.16 устарели следующие функции, которые будут удалены в будущей версии. Хотя это не повлияет на ваши приложения сразу, мы настоятельно рекомендуем принять описанные меры по обновлению вашего кода после обновления до 8.16.
Чтобы узнать, используете ли вы какие-либо устаревшие функции, включите логирование устаревших функций.
Устаревшие функции анализа
Устареть dutch_kp и lovins stemmer, так как они удалены в Lucene 10
Подробности
kp, dutch_kp, dutchKp и lovins stemmer устарели и будут удалены.
Последствия
Эти стеммеры будут удалены и больше не будут поддерживаться.
Устареть параметр side для edge_ngram
Подробности
edge_ngram больше не будет принимать параметр side.
Последствия
Пользователям потребуется обновить любое использование фильтра токенов edge_ngram, использующего параметр side. Если использовалось значение back, они могут добиться аналогичного поведения, используя фильтр токенов reverse.
Устаревшие функции CRUD
Устареть индексы с префиксом точка и шаблоны индексов с составной структурой
Подробности
Индексы, начинающиеся с точки ., зарезервированы для системных и внутренних индексов и не должны использоваться конечными пользователями. Кроме того, следует избегать составных шаблонов индексов, содержащих шаблоны для индексов с префиксом точка, поскольку эти шаблоны предназначены только для внутреннего использования. В будущей версии Elasticsearch создание таких индексов с префиксом точка будет запрещено.
Последствия
Запросы, выполняющие действие, которое приведет к созданию индекса, начинающегося с точки (индексация документа, ручное создание, переиндексация), или созданию шаблона индекса с шаблонами индексов, начинающимися с точки, будут содержать заголовок предупреждения об устаревании индексов с префиксом точка в ответе.
Устаревшие функции REST API
Добавление предупреждений о устаревании для rrf с использованием ранжирования и sub_searches
Подробности
Параметр API поиска sub_searches больше не будет поддерживаться и будет удален в будущих выпусках. Аналогично, rrf может быть использован только через указанный retriever и больше не через параметр rank
Воздействие
Запросы, определяющие rrf через rank и/или элементы sub_searches, будут запрещены в будущей версии. Пользователи должны использовать новый параметр retriever.
Устаревание устаревших параметров запроса диапазона
Подробности
Запрос диапазона больше не будет принимать параметры to, from, include_lower и include_upper.
Воздействие
Вместо этого используйте параметры gt, gte, lt и lte.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/migrating-8.16.html