У меня есть случай, когда мне нужно использовать логику ИЛИ с фильтрами атрибутов. Вот сценарий, Пользователь имеет много ролей и имеет атрибут глобальный. Ниже указатель блока
define_index do
has roles(:id), :as => :role_ids
has global
end
И мне нужно получить пользователей с ролями с идентификатором 5 или пользователей с глобальным значением true. Вот запрос, который я пытаюсь использовать
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. Я использую сфинкса 0,9,9
Любая помощь?