Разбор / токенизация пользовательского запроса самостоятельно и генерация sql
В большинстве случаев это уродливо и подвержено ошибкам, но в некоторых случаях не так уж и плохо.Если база данных относительно мала, а схема статична, и для поиска не так много полей (например, столбцов) - это может быть нормально.
или используйте lucene или tsearch2 из postgresql.Не уверен, какой из них лучше подходит
В целом, выделенный FTS лучше.
Вы делали "домашнюю работу" и проводили некоторое время в Интернете?Пожалуйста, найдите "postgresql lucene" или "postgreSQL FTS" и прочитайте 5 лучших результатов.Начните с этой прекрасной презентации Билла Карвина: http://www.slideshare.net/billkarwin/full-text-search-in-postgresql
Какой подход лучше, это зависит от многих факторов, в том числе:
- Вы на J2EE или нет?
- Хотите минимального обслуживания или максимальной производительности?
- Что такое шаблон использования базы данных, начиная с коэффициента чтения / записи?
Если я использую lucene, могу ли ясоздать индекс в БД или он будет находиться в файловой системе?
Большинство решений FTS, включая Lucene / Solr, используют свои собственные файлы статического индекса вне базы данных.Это просто лучше для нереляционных данных.
Могу ли я использовать solr в текущем веб-приложении или мне нужно запустить его как отдельный экземпляр сервера и выдавать запросы к нему?
Здесь ответили: http://lucene.apache.org/solr/#intro