Мышление Сфинкса "в схеме не найдено ни одного поля" - PullRequest
0 голосов
/ 16 февраля 2012

Я довольно новичок в сфинксе.

Попытка найти пользователя с именем "bob" и company_id "14".

Controller:
@users = User.search 'bob', :conditions => { :company_id => '14'}

Model:
  define_index do
    indexes :name
    indexes :company_id
  end

Error:
index user_core: query error: no field 'company_id' found in schema

У меня есть «company_id» в таблице, и я несколько раз переиндексировал все. Когда я просто ищу «имя», все работает правильно.

Ответы [ 3 ]

4 голосов
/ 09 августа 2012

Так же, как еще один полезный совет: оказывается, мне пришлось изменить способ, которым я назвал Model.search(), так как мое поле было указано в качестве атрибута (то есть, используя has), мне нужно было вызвать метод search с помощью :with вместо :conditions (для полей).

3 голосов
/ 16 февраля 2012

Атрибуты должны быть объявлены как:

has company_id

Итак, в вашем случае:

Model:
define_index do
    indexes :name
    has :company_id
  end
1 голос
/ 15 января 2013

И еще один полезный совет, если вы оказались таким идиотом, как я:

Если вы получаете эту ошибку и правильно используете атрибуты и поля, возможно, вы забыли перезапустить сервер dev после добавления нового поля в индекс.

...