思考Sphinx和负面ID
我有一个User
模型和一个Message
模型,用户可以在其中相互发送消息,我使用Thinking Sphinx gem作为Ruby on Rails中Sphinx Search的连接器进行全文搜索。
在我的User
模型中,我为系统用户使用负ID,为常规用户使用正ID。
现在我sender_id
的问题是,Sphinx似乎忽略了对具有负ID的用户的消息搜索(=外键sender_id
为sender_id
)。
在我的Message
模型中定义的索引:
define_index 'messages_index' do indexes title, :sortable => true indexes body has sender_id, recipient_id, created_at, updated_at end
搜索在MessagesController
完成:
@received_messages = current_user.received_messages.search params[:q]
如果current_user
具有否定ID,则不返回结果。 当我进行reindex
它显示所有Sphinx收集了所有消息,没有遗漏任何消息。
有没有办法让Sphinx接受has
-Attributes的负数? 或任何解决方案的想法?
Sphinx的整数类型是无符号的,因此不会收集负值。
您可以强制该类型为浮点数,但不要忘记对这些属性浮点数进行任何过滤:
has sender_id, recipient_id, :type => :float has created_at, updated_at