OpenSearch: В скриптах Painless Scripts включена функция Script Regex

Regex (сокращение от regular expression) - это метод поиска с использованием последовательности символов, определяющих шаблон поиска. Например, gray|grey найдет оба слова gray и grey. Regex следует осторожно использовать в скриптах painless, поскольку некоторые выражения могут работать очень медленно и требовать много ресурсов для выполнения. По этой причине в скриптах painless regex по умолчанию отключен.

Если вы решили включить regex, то помните о следующих правилах: выражения должны по возможности использовать якоря (^ или $) для обозначения начала или конца текстовой строки и никогда не должны содержать ведущего подстановочного символа (*) (или просто 1 символ и подстановочный знак), поскольку это подразумевает поиск по всем терминам в наборе. В общем случае также следует стараться как можно точнее определять, какие и сколько символов могут совпадать.

Как решить эту проблему

По умолчанию regex в OpenSearch отключен, поэтому, если он был включен на вашем кластере, это может быть связано с определенными причинами. Следует помнить, что использование regex - при правильной реализации - вполне законно. Проверьте скрипты, используемые в вашем приложении, чтобы определить, используется ли regex. Можно поискать безболезненный оператор regex "=~".

Чтобы полностью исключить использование regex-скриптов, можно восстановить настройку по умолчанию для всех узлов в файле opensearch.yml (она не может быть обновлена динамически):

Понравилась статья? Поделиться с друзьями:
Добавить комментарий