четверг, октября 26, 2006

Полнотекстовый поиск по Rails-приложению

Ferret - это Ruby-реализация поискового движка Apache Lucene. Использовать его довольно легко:

1. Откройте командную строку и установите
gem install ferret
2. Затем установите плагин acts_as_ferret в папку приложения:
ruby script/plugin install 
svn://projects.jkraemer.net/acts_as_ferret/
tags/stable/acts_as_ferret
3. Измените модель, соответствующую таблице, по которой должен идти поиск, следующим образом:
class Bug < ActiveRecord::Base
acts_as_ferret :fields => [ ‘description’]
end
где :fields - поля для индексации. Если не использовать этот атрибут, то будут проиндексированы все поля.

4. Добавьте, например, такой метод:
def searchBugs
@bugs= Bug.find_by_contents(params[:query])
render(:xml => @bugs.to_xml)
end
5. Наконец, можно вызвать этот метод из Flex-приложения с помощью HTTPService.

Например, следующий код вернет все bugs, содержащие слово "error" в поле description:
searchBugs.send({query:"error"});

Оттуда

2 комментария:

Bregor комментирует...

Вот еще бы оно по-русски бы понимало...
А то с юникодом бидэ полное...

alone комментирует...

Интересно, а как быть с условиями?
Типа поле1="ааа" или поле2="ббб"