Я пытаюсь заставить действовать activ_as_ferret в моих приложениях rails. Я установил драгоценный камень ferret
. Установлен плагин acts_as_ferret
.
Вот так выглядит моя модель.
class User < ActiveRecord::Base
acts_as_ferret :fields => {
:first_name => {},
:last_name => {}
}
Я даже пытался
class User < ActiveRecord::Base
acts_as_ferret :fields => [:first_name, :last_name]
Теперь я открыл script/console
Вот код, который я написал, и ответ, который я получил
User.first
# => <Jobseeker id: 1, first_name: "Chirantan", last_name: "Rajhans"\>
User.find(:first, :conditions => ["first_name like ?", '%chi%'])
# => <Jobseeker id: 1, first_name: "Chirantan", last_name: "Rajhans"\>
User.find_with_ferret 'chi'
# => []
User.find_with_ferret '%chi%'
# => []
User.find_with_ferret 'Chirantan'
# => []
Я даже пытался перестроить индекс. Не работал. Журнал хорька показывает, что все идет хорошо.
Вот снимок журнала.
[user] rebuild index with models: [User(id: integer, login: string, email: string, crypted_password: string, salt: string, created_at: datetime, updated_at: datetime, remember_token: string, remember_token_expires_at: datetime, first_name: string, middle_name: string, last_name: string, url_id: string, active: boolean, feature_profile: boolean, type: string, company_id: string)]
[user] reindexing model User
[user] reindex model User : 100.00% complete : 0.01 secs to finish
[user] reopening index at /home/chirantan/workspace/parnunu/index/development/user
index_for [User(id: integer, login: string, email: string, crypted_password: string, salt: string, created_at: datetime, updated_at: datetime, remember_token: string, remember_token_expires_at: datetime, first_name: string, middle_name: string, last_name: string, url_id: string, active: boolean, feature_profile: boolean, type: string, company_id: string)]
options: {:limit=>nil, :offset=>nil}
ar_options: {}
[user] stored_fields: nil
[user] query: chi
-->+(last_name:chi first_name:chi) +(class_name:User)
[user] now retrieving records from AR with options: {}
[user] 0 results from AR: []
Query: chi
total hits: 0, results delivered: 0
index_for [User(id: integer, login: string, email: string, crypted_password: string, salt: string, created_at: datetime, updated_at: datetime, remember_token: string, remember_token_expires_at: datetime, first_name: string, middle_name: string, last_name: string, url_id: string, active: boolean, feature_profile: boolean, type: string, company_id: string)]
options: {:limit=>nil, :offset=>nil}
ar_options: {}
[user] stored_fields: nil
[user] query: %chi%
-->+(last_name:chi first_name:chi) +(class_name:User)
[user] now retrieving records from AR with options: {}
[user] 0 results from AR: []
Query: %chi%
total hits: 0, results delivered: 0
index_for [User(id: integer, login: string, email: string, crypted_password: string, salt: string, created_at: datetime, updated_at: datetime, remember_token: string, remember_token_expires_at: datetime, first_name: string, middle_name: string, last_name: string, url_id: string, active: boolean, feature_profile: boolean, type: string, company_id: string)]
options: {:limit=>nil, :offset=>nil}
ar_options: {}
[user] stored_fields: nil
[user] query: Chirantan
-->+(last_name:chirantan first_name:chirantan) +(class_name:User)
[user] now retrieving records from AR with options: {}
[user] 0 results from AR: []
Query: Chirantan
total hits: 0, results delivered: 0
Я тестировал это в режиме разработки на консоли. Есть ли шаг, который я пропустил, или мне нужен какой-то процесс индексации (как в ThinkingSphinx)? Что я делаю не так?