2012-02-29 2 views
0

У меня есть прецедент, где мне нужно использовать логику ИЛИ с фильтрами атрибутов. Вот сценарий, Пользователь имеет много ролей и имеет атрибут global. Ниже приведен индексный блокИЛИ Логика с атрибутными фильтрами в Sphinx

define_index do 
    has roles(:id), :as => :role_ids 
    has global 
end 

И мне нужно, чтобы у пользователей были роли с id 5 или пользователями с глобальной истиной. Вот запрос я пытаюсь использовать

User.search(
    :sphinx_select => "*, IF(global OR role_ids = 5, 1, 0) AS program_global", 
    :with => {'program_global' => true}, 
    :match_mode => :extended 
) 

Это приводит к синтаксической ошибке - неожиданный TOK_ATTR_MVA вблизи 'role_ids = 5, 1, 0). Проблема здесь в том, что role_ids - это MVA. Я использую sphinx 0.9.9

Любая помощь?

+0

Try "(глобальные | role_ids) = (5 | 1 | 0)" символ трубы вместо 'OR'. Я пробовал со старой версией не в новой .. – Jak

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^