acts_as_ferret вообще не ищет - PullRequest
       11

acts_as_ferret вообще не ищет

1 голос
/ 21 декабря 2009

Я пытаюсь заставить действовать 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)? Что я делаю не так?

1 Ответ

0 голосов
/ 21 декабря 2009

Попробуйте запрос

User.find_with_ferret 'first_name:Chirantan'

Похоже, вы не ищете все поля. Вам нужно использовать опцию default_field, если вы хотите указать поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...