Думаете, сфинкс с настройками конфиденциальности с использованием фасетов?

Я пытаюсь использовать Thinking Sphinx с моим решением Can Can для авторизации.

Я нашел этот ответ полезным Cancan Thinking Sphinx current_ability Questions, но мне было интересно, есть ли может быть способом сделать это с помощью фасетов.

Итак, у меня есть проекты, в которых есть столбец с именем privacy, который является логическим. Если проект является частным, то существует индекс для collaborator_ids, который представляет собой список всех пользователей, которые могут просматривать проект.

Мне было интересно, есть ли способ сформировать запрос с использованием фасетов, чтобы вернуть все проекты, которые являются либо общедоступными, либо частными, а идентификатор пользователя находится в collaborator_ids.


Другой подход, который я рассматриваю, — это формулировка расширенного запроса в моем контроллере для проверки этих полей. http://sphinxsearch.com/docs/current.html#extended-syntax


person Cyrus    schedule 02.03.2012    source источник


Ответы (1)


Я понятия не имею, как бы вы это сделали, думая о сфинксе, но в обычном сфинксе это должно работать.

$cl->setSelect("*,privacy+IF(IN($user_id,collaborator_ids),1,0) AS myint");
$cl->setFilter('myint',array(1,2));

Что эффективно делает запрос «ИЛИ».

Как я уже сказал, я не могу помочь тебе написать это на вещевом сфинксе.

person barryhunter    schedule 04.03.2012