Вы можете использовать поиск по близости , чтобы найти термины на определенном расстоянии друг от друга. Синтаксис запроса Lucene выглядит следующим образом "jon skeet"~3
, что означает поиск «jon» и «skeet» в трех словах друг от друга. С этим синтаксисом относительный порядок не имеет значения; "jon q. skeet", "skeet, q. jon" и "jon skeet" будут совпадать.
Если у вас есть список фраз, которые вы хотите рассматривать как один токен, вы должны позаботиться об этом в своем анализаторе. Например, вы хотите рассматривать «ближний восток», «средний восток» и «дальний восток» как отдельные токены. Вам нужно написать анализатор с некоторым вниманием, чтобы он мог обрабатывать эти фразы, как если бы они были одним словом. Этот анализатор используется как в индексаторе, так и против пользовательского ввода в поисковом приложении.