6 комментариев

0
Так это было давным давно сделано, по-моему, еще в самой первой пре-релизной версии Альто. Только вот в ЛС это все делается элементарно, т.к. там блог либо открытый, либо закрытый, третьего не дано. А вот в Альто с тех пор многое изменилось, в частности, появилось множество настроек для блогов, указывающих, для кого блог закрыт, а для кого открыт. И т.к. строить индексы Сфинкса для каждого юзера нереально, то для блогов сейчас просто задается опция — индексировать их или нет
0
В описании сказано следующее:

1.вносим в поисковый индекс id закрытого блога к которому относится топик или комментарий, либо 0 если этот блог не закрытый.
2.передаём в поиск id текущего пользователя
3.находим список закрытых блогов в которые имеет доступ текущий пользователь.
используем этот список расширенный нулём (что добавит все не закрытые блоги в результаты поиска для любого пользователя) со стандартной возможностью фильтрации Сфинкса


Я не понимаю, почему нужно делать индекс под каждого пользователя, если передаваемый в выборку набор блогов к которым разрешен доступ -это просто еще один параметр фильтрации?
Насколько я понял — индексы строятся по всем данным. А когда идет выборка — то помимо собственно искомого слова еще вводится ограничение на его «источник».
0
Я не нашел в текущем плагине сфинкса правок которые рекомендуются в приведенной статье.
0
Потому что в Альто эта задача решается иначе:
1) У блогов есть признак, индексировать входящие в них топики или нет (поле index_ignore)
2) У топиков тоже есть признак индексации (поле topic_index_ignore)
3) В индексе Сфинкса в условиях WHERE значится:
AND t.topic_index_ignore=0

Этот признак топика отслеживается и проставляется в нужное значение при соответствующих манипуляциях — добавление, редактирование, перенос в другой блог и т.д.
0
Но в статье как раз и описывается доработка, при которой индексируется все без исключения, а потом выдача фильтруется, в зависимости от того есть у пользователя право читать выдаваемый контент или нет.
Отредактирован:
0
Возможно, я невнимательно прочитал ту статью. Гляну более внимательно на досуге
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.