Версия 4.0 Lucene будет поддерживать запросы регулярных выражений непосредственно в стандартном анализаторе запросов с использованием специального синтаксиса. Я проверил, что он работает на экземпляре Solr, который я запускаю, собранном из транка Subversion в феврале.
Билет Jira 2604 описывает расширение стандартного синтаксического анализатора запросов, используя специальный синтаксис регулярных выражений, используя прямые косые черты для ограничения регулярных выражений, аналогично синтаксису в Javascript. Кажется, он использует базовый парсер RegexpQuery.
Итак, краткий пример:
body:/[0-9]{5}/
будет соответствовать пятизначному почтовому индексу в текстовом корпусе, который я проиндексировал. Но, как ни странно, body: / \ d {5} / у меня не сработало и ^ тоже не получилось.
Регулярный диалект должен быть Java, но я не уверен, что все в нем работает, так как я только сделал краткий экзамен. Вероятно, придется внимательно изучить код RegexpQuery, чтобы понять, что работает, а что нет.