Я пытаюсь выяснить, как добавить поиск в мое приложение rails. Я совершенно новый, так что медленно. Я создал блог и сделал немало настроек, включая добавление AJAX, до сих пор очень горжусь собой. У меня возникли проблемы с поиском каких-либо хороших руководств о том, как добавить эту функциональность. В основном я просто хочу включить полный поиск для поиска моей таблицы сообщений. Каков самый простой способ сделать это?Добавление поиска в Ruby on Rails - простой вопрос
ответ
Отличный Railscast на Thinking Sphinx, который является моим фаворитом выше других указанных вариантов. Это быстро, просто и continually being developed.
Существует также SearchLogic, который отлично подходит, если вам не нужна полная индексация текста (вы, вероятно, не для блога). И Railscast, чтобы согласиться с этим.
В зависимости от используемой СУБД может быть встроенное решение для полнотекстового поиска.
В противном случае вы можете проверить Sunspot (и Rails plugin), который использует Apache Solr для поиска полнотекстового и проста в использовании. Особенно писать запросы/поиски гораздо веселее, чем со стандартным плагином acts_as_solr
.
Редактировать О, а вот это screencast on Sunspot для визуальных людей.
Я пробовал Sphinx, Ferret и Solr, и я должен сказать, Sunspot + Solr - лучший матч. –
Я предлагаю использовать плагин acts_as_solr. Я только начинаю с Rails, и это плагин индексации поиска, рекомендованный моим профессором. Он включает поисковую систему SOLR в плагине. Сайт содержит инструкции по установке и использованию.
В основном, как показывает использование, вы просто включаете тег act_as_solr в зависимости от того, какие модели вы хотите искать, а затем укажите, какие атрибуты в вашей модели вы хотите индексировать для поиска ... так что вы сделать что-то вроде:
class Post < ActiveRecord::Base
acts_as_solr :fields => [:post, :comments, :whatever]
И для поиска вы могли бы сделать что-то вроде ...
Post.find_by_solr(query_string)
Поскольку 'act_as_solr' больше не поддерживается (выступая в качестве де-факто сопровождающего), я бы не рекомендовал его использовать. Sunspot - намного лучший вариант для Solr. –
Самый простой способ сделать это было бы сделать что-то вроде этого:
results = Post.find (: all,: conditions => "post_body LIKE '% # {search_string}%'")
Однако это довольно ограниченно, поскольку он будет искать только точное слово или фразу (не говоря уже об уязвимости SQL-инъекции). Как я уже упоминал, это самый простой способ сделать поиск, но, безусловно, не самый лучший. Я бы рассмотрел использование act_as_solr, если вы хотите сделать это серьезно.
Если вы хотите сохранить его как можно проще, попробуйте его: conditions => ["post_body LIKE '%?%'", Search_string], который по крайней мере защищает вас от уязвимостей SQL-инъекций :-) – webmat
- 1. Простой вопрос о блоке if в Ruby on Rails
- 2. Ruby on Rails MVC Вопрос
- 3. Ruby on Rails ERB Вопрос
- 4. Ruby On Rails «найти» вопрос
- 5. Простой Ruby on Rails учебник
- 6. Стилирование форм Ruby on Rails 2 - простой вопрос
- 7. Ruby on Rails: Форма поиска
- 8. Логика поиска в Ruby On Rails 4.0
- 9. Простой дизайн базы данных Ruby on Rails
- 10. Добавление в массив в Ruby on Rails
- 11. Ruby on Rails простой стиль выходного стиля
- 12. Конкатенация для поиска в Ruby on Rails
- 13. Помощь в поиске поиска Ruby on Rails
- 14. Ruby on Rails tutorial - сгенерируйте вопрос
- 15. Ruby On Rails ERB CSS Layout Вопрос
- 16. varchar Миграционный вопрос для Ruby on Rails
- 17. Ruby on Rails 3 Выберите помощник Вопрос
- 18. Basic Ruby on Rails Вопрос о маршрутизации
- 19. Ruby On Rails модели объединения nubie вопрос
- 20. Добавление времени в ruby on rails
- 21. Ruby on Rails - Добавление дополнения в модель
- 22. Ruby on Rails - добавление CSS в text_field
- 23. Добавление HTML в Ruby on Rails Gem
- 24. Добавление класса в collection_radio_buttons [Ruby on Rails]
- 25. Вопрос о флажке на Ruby on Rails
- 26. Добавление анимации на сайт Ruby on Rails.
- 27. Ruby on Rails filterrific gem простой фильтр
- 28. Ruby on Rails: более простой метод Hash.slice?
- 29. Простой JavaScript на Ruby on Rails
- 30. Ruby on Rails и NoSQL, добавление полей
Привет, bensie! Любите свой древний ответ;) –