Если вы хотите просто выполнить поиск в определенном столбце (или двух), вы, безусловно, можете воспользоваться оператором LIKE
SQL.
Например, используя named_scope
в рельсах
class MyModel < ActiveRecord::Base
named_scope :search, lambda { |query|
{ :conditions => ["category like ?", "%#{query}%"] }
}
end
Тогда в ваших контроллерах вы могли бы сделать что-то вроде
@search_results = MyModel.search(params[:query])
У этого подхода есть несколько недостатков:
- Вы ищете только один столбец. Вы можете воспользоваться динамической природой Ruby, чтобы расширить ее до большего числа столбцов, но вы определенно не получаете преимущества индекса, как это было бы с sphinx
- Это будет хорошо работать для небольших наборов данных. После того, как вы получите несколько тысяч строк, вы начнете нуждаться в некоторых приличных стратегиях индексирования, чтобы сохранить это быстрым, в противном случае поиск по этому пути резко замедлится.
Надеюсь, это поможет. Если я неправильно понял вопрос, дайте мне знать.