Ruby on rails 思考斯芬克斯与否定id
我有一个Ruby on rails 思考斯芬克斯与否定id,ruby-on-rails,thinking-sphinx,Ruby On Rails,Thinking Sphinx,我有一个用户模型和一个消息模型,在这两个模型中,用户可以互相发送消息,我使用全文搜索作为RubyonRails中的连接器 在我的User模型中,我对系统用户使用负ID,对普通用户使用正ID 现在我遇到了一个问题,Sphinx似乎忽略了那些id为负(=外键sender\u idashas-Attribute)的用户在邮件中的搜索 我的消息中定义的索引型号: define_index 'messages_index' do indexes title, :sortable => true
用户
模型和一个消息
模型,在这两个模型中,用户可以互相发送消息,我使用全文搜索作为RubyonRails中的连接器
在我的User
模型中,我对系统用户使用负ID,对普通用户使用正ID
现在我遇到了一个问题,Sphinx似乎忽略了那些id为负(=外键sender\u id
ashas
-Attribute)的用户在邮件中的搜索
我的消息中定义的索引
型号:
define_index 'messages_index' do
indexes title, :sortable => true
indexes body
has sender_id, recipient_id, created_at, updated_at
end
搜索在消息controller
中完成:
@received_messages = current_user.received_messages.search params[:q]
如果当前用户
的ID为负值,则不会返回结果。当我做一个reindex
时,它显示所有Sphinx收集了所有消息,没有一条被遗漏
有没有办法教斯芬克斯接受
has
-属性的负数?或者任何解决方法的想法?斯芬克斯的整数类型是无符号的,因此不会收集负值
您可以强制该类型为float,但不要忘记对这些属性float进行任何筛选:
has sender_id, recipient_id, :type => :float
has created_at, updated_at
不知道每个属性都可以设置
:type
,这在文档中没有提到?!我使用了:type=>:bigint
,它工作正常,不会出现:float
整数值可能存在的问题。非常感谢!