Поиск по шаблону и полнотексто... Заметка
RSS DZone.com

Поиск по шаблону и полнотекстовый поиск в PostgreSQL: понимание несоответствия

Некоторое время назад возникла задача реализовать глобальный поиск в одном из наших продуктов. Вкратце, цель заключалась в том, чтобы иметь возможность искать несколько (различных) сущностей по шаблону, который ищется и сопоставляется с несколькими их атрибутами. На первый взгляд не очень сложная функция, но она сопряжена с множеством проблем и компромиссов, которые необходимо проанализировать, помимо самой реализации, чтобы обеспечить хотя бы приятный пользовательский опыт. Поскольку в качестве основной базы данных использовался PostgreSQL, и я знал о его мощных возможностях полнотекстового поиска (FTS), я посчитал его потенциально хорошим кандидатом, поэтому начал исследовать его, экспериментировать, стремясь построить решение вокруг него. К сожалению для задачи, но к счастью для меня и для интересных возможностей FTS, о которых я узнал во время этого исследования, через несколько часов я понял, почему его нельзя использовать для поиска по шаблону.