使用增量索引时,认为Sphinx无法排序

问题描述

| 我不确定这里是谁的错,但是我们的用户表中有一列称为last_logged_in_at,我们将其用于排序。这是在使用Think Sphinx且启用了增量索引的Rails 2.3项目中。 当记录的增量设置为true时,即使按last_logged_in_at进行的排序应将其置于顶部,也将其推到底部。 我尝试使用last_logged_in_at作为日期时间,时间戳甚至是整数,并且行为始终相同。 有什么想法吗? 查询如下所示:
{:populate=>true,:match_mode=>:boolean,:order=>\"last_logged_in_at DESC,updated_at DESC\",:per_page=>20,:with_all=>{:role_id=>17,:state=>\"activated\",:mandator_id=>9,:profile_active=>true},:page=>nil}
    

解决方法

对不起,一生的疯狂忙碌,因此回复缓慢。 您正在过滤字符串-Sphinx当前不允许使用。但是,有一些解决方法。 另外:您正在使用
:with_all
,但是
:with
在您的情况下的行为完全相同。当您要在单个属性上匹配多个值时,1很有用。例如,此查询将匹配文章具有任何给定标签ID的结果:
Article.search :with => {:tag_ids => [1,2,3]}
但是,下一个查询将匹配具有所有给定标签ID的文章:
Article.search :with_all => {:tag_ids => [1,3]}
我意识到这些要点都与您的问题没有直接关系-但是,最好先使查询有效,然后再仔细检查行为是否正确。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...