Как выбрать между регулярным выражением и групповым символом вasticsearch - PullRequest
0 голосов
/ 10 октября 2019

Когда мы пытаемся сделать регулярное выражение в 10 различных терминах, мы получаем следующее исключение:

ElasticsearchException[Elasticsearch exception [type=too_complex_to_determinize_exception, reason=too_complex_to_determinize_exception: Determinizing automaton with 67 states and 278 transitions would result in more than 10000 states.]];

Увеличение ускорения устранит ошибку. Но количество пройденных терминов будет отличаться и не может установить конкретное значение. Я подумываю об использовании подстановочного знака.

Подстановочный знак также внутренне создает состояния, поэтому, является ли использование подстановочного знака лучшим подходом или есть лучший способ?

Мой пример запроса с использованием регулярных выражений:

search {"from":0,"size":0,"timeout":"60s","query":{"bool":{"must":[{"regexp":{"filed_name":

{"value":".*term.*|.*term.*|.*term.*|.*term.*|.*term.*|.*term.*|.*term.*|.*term.*|.*term.*|.*term.*|.*term.*","flags_value":65535,"max_determinized_states":10000,"boost":1.0}

}},{"range":{"condition_field":

{"from":0,"to":null,"include_lower":false,"include_upper":true,"boost":1.0}

}},{"range":{"condition_filed":

{"from":0,"to":null,"include_lower":false,"include_upper":true,"boost":1.0}

}}],"adjust_pure_negative":true,"boost":1.0}},"profile":true,"sort":[{"_id":{"order":"asc"}}]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...