我对Sphinx很陌生。
尝试查找名称为“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'和我重复索引了几次。 当我只是在寻找'名字'时,一切正常。
答案 0 :(得分:4)
正如另一个有用的提示:结果我必须改变我调用Model.search()
的方式,因为我的字段被列为属性(即使用has
),我需要调用{{ 1}}使用search
代替:with
的方法(对于字段)。
答案 1 :(得分:3)
属性应声明为:
has company_id
所以,在你的情况下:
Model:
define_index do
indexes :name
has :company_id
end
答案 2 :(得分:1)
还有一个有用的提示,如果你碰巧像我这样的白痴:
如果您收到此错误并且正确使用属性和字段,则可能是在向索引添加新字段后忘记重新启动开发服务器。