В проекте Rails я использую Sphinx вместе с плагином Thinking Sphinx. Я индексирую таблицу с атрибутом: foo, который является float.
Мое желаемое поведение при сортировке по столбцу: foo будет означать, что значения nil всегда появляются в конце списка, например,
id; foo (order foo desc)
-------
1; 5
2; 3
3; -4
4: -5
5: nil
6: nil
id; foo (order foo asc)
-------
4: -5
3; -4
2; 3
1; 5
5: nil
6: nil
Если бы это был обычный sql, я бы отсортировал:
:order => "(foo IS NULL) ASC, foo DESC"
Но, похоже, это невозможно, так как я думаю, что значения NULL переводятся в 0 (это правда?). Использование упорядочивающих выражений sphinx, похоже, неправильно сортирует мои плавающие элементы.
Кто-нибудь решил эту проблему или есть идеи, как это сделать?