思考Sphinx“在架构中找不到字段”错误

时间:2012-02-15 21:35:37

标签: mysql ruby-on-rails-3 sphinx thinking-sphinx

我对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'和我重复索引了几次。 当我只是在寻找'名字'时,一切正常。

3 个答案:

答案 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)

还有一个有用的提示,如果你碰巧像我这样的白痴:

如果您收到此错误并且正确使用属性和字段,则可能是在向索引添加新字段后忘记重新启动开发服务器。