Советы с движком полнотекстового поиска в Rails

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

Итак, мое требование:

  • Результат будет отображаться в режиме реального времени в поле на текущей странице.
  • Css Настраиваемый
  • Иметь возможность поиска по нескольким таблицам в моей базе данных PostGreSQL.
  • В настоящее время я использую Heroku для производства.

Я хочу выбрать лучший для своих нужд, и поэтому я спрашиваю ваше мнение. Заранее спасибо!

2 ответа

Обязательно отделяйте способ отображения данных (ваши первые два требования) от того, как вы хотите, чтобы они были проиндексированы (третий), от способа развертывания.

Давайте начнем задом наперед. Heroku предоставляет ограниченную поддержку для конфигурации машины; оба упомянутых вами варианта требуют установки службы, которая читает и записывает файлы. Heroku имеет такую ​​возможность двумя способами: 1) PostgreSQL имеет встроенную возможность полнотекстового поиска, и 2) Heroku сделал опцию "Летающий сфинкс", а также эти другие параметры, документированные на сайте Heroku. Первые два варианта могут обеспечить простейшую связь с вашей базой данных, но я не пробовал другие варианты, так что, возможно, они тоже. Итак, теперь у вас есть поисковый индекс, развернутый.

"Инкрементальный" поиск в реальном времени - это просто вопрос презентации... и, возможно, производительности. Начните печатать, и вы начнете получать результаты - это не что иное, как отправка запросов через AJAX на поисковый сервер, обычно после небольшой задержки при наборе (возможно, 50 мс), и обработка отображения результатов. Есть несколько способов сделать это простым, написанное здесь в этом SO-ответе.

В итоге я оставил движок PostgreSQL, но использовал select2 в качестве jquery для презентации и смог получить окно поиска, подобное Facebook:

Select2 с Rails и JSON

Спасибо за помощь!

Другие вопросы по тегам