Есть ли способ выполнить полнотекстовый поиск последовательности слов? Порядок важен, но расстояние между словами нет. Слова могут быть рядом друг с другом или на расстоянии n
-слов друг от друга.
Например, с учетом следующего текста: The quick brown fox jumps over the lazy dog
.
Следующие поиски должны вернуть true
:quick brown
, quick jumps
, jumps dog
.
Но должно возвращаться следующее false
: brown quick
, jumps fox
, jumps brown
.
Оператор <->
вернет true
, только если два слова точно одно за другим. <n>
(где n> 0) вернет истину, только если второе слово точно на расстоянии n
от первого слова.
Решение, которое приходит мне в голову, состоит в использовании &
оператор, а затем выполнить дополнительную фильтрацию, используя LIKE '%firstword%secondword%'
, но это медленно, если имеется много документов (и в таблице будет более 100 000+ документов).
Есть ли в Postgres быстрый способ сделать это?