Лучший вариант поиска для приложения Rails, размещенного на heroku? - PullRequest
8 голосов
/ 06 февраля 2011

В последнее время я работаю над новым проектом, где фантастическая поисковая система имеет решающее значение.Это приложение rails3, размещенное на heroku, и я ищу возможные решения (было бы идеально, если бы rubygem), которые предлагают простой способ получить мощный полнотекстовый поиск.

Сейчас я использую act_as_tsearchиспользует PostgreSQL и выполняет базовый запрос MATCH.Тем не менее, это не очень хороший результат (например, если я ищу «создать проект» и «как создать проект» существует как запрос, он не находит его).

Кто-нибудь может поделиться своим опытом с полнотекстовым поиском, кто-нибудь опробовал Solr?

Ответы [ 4 ]

13 голосов
/ 06 февраля 2011

IndexTank - ваш лучший выбор.Недавно они были добавлены как дополнение Heroku .

Мы недавно пытались просто запустить собственный поиск нашего приложения Heroku, и это просто не стоит того, потому что вам приходится беспокоиться о стабильности имасштабирование этого окна поиска.Лучше пойти с провайдером, таким как IndexTank.

IndexTank также поддерживает Reddit и Wordpress.com, так что могу поспорить, что он будет надежным.

4 голосов
/ 06 февраля 2011

SOLR работает очень хорошо - это немного дорого для начала (20 долларов в месяц), но это просто работает и работает хорошо.

Недавно они добавили возможность спрашивать пользователя: «Вы имели в виду?для поиска [правильное написание] ".

Вы можете легко выполнять кросс-модельный поиск (поиск пользователей, автомобилей и дилеров).

3 голосов
/ 03 февраля 2012

В Textile gem есть бесплатное решение. Он использует поддержку полнотекстового индекса PostgreSQL (> 8.3) и создает метод поиска в ваших моделях. Если вы создаете индексы, скорость очень хорошая (для бесплатного решения).

Надеюсь, это поможет!

3 голосов
/ 06 февраля 2011

Heroku предлагает дополнения, которые вы можете легко добавить в свое приложение.Вы должны взглянуть на Solr и IndexTank .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...