Полнотекстовый поиск и ролевые разрешения

Я создаю систему, в которой у пользователей есть определенные динамические роли, которые дают им доступ к некоторым ресурсам (например, метадокументам). Эти документы META индексируются с помощью Elastic Search.

Я могу делать свои запросы без проблем.

Теперь мне нужно принять во внимание роли: если я добавлю роли, которым разрешено просматривать данный документ при индексировании документов, я затем отфильтрую свой запрос, чтобы он соответствовал определенной роли, и верну результаты.

Это нормально, но если роль меняется, мне нужно переиндексировать все мои документы.

Если я делаю это динамически на стороне сервера при получении результатов эластичного поиска, это может работать, но будет потреблять некоторое количество ЦП и пропускной способности, а также это может быть проблемой с поиском фасетов и разбиением на страницы.

Как бы вы решили такую ​​проблему? Какое самое подходящее решение?


person coulix    schedule 08.05.2011    source источник
comment
Интересная проблема! Я предполагаю, что это частный случай более общей проблемы выполнения запросов, сочетающих полнотекстовый поиск с реляционными аспектами. Конечно, некоторые реляционные базы данных уже поддерживают быстрый полнотекстовый поиск.   -  person Robin Green    schedule 08.05.2011
comment
Как часто меняются роли? Сколько времени занимает индексация? Влияет ли переиндексация на возможность поиска?   -  person Adrian K    schedule 09.05.2011
comment
На самом деле после того, как я увидел, что ES поддерживает массовую вставку для более быстрой индексации, переиндексация станет жизнеспособным решением, учитывая, что роли меняются не так часто.   -  person coulix    schedule 09.05.2011


Ответы (1)


Как насчет того, чтобы поставить перед вами прокси-сервер Elastic Search, который удалит все нежелательные результаты и вообще не будет заботиться о ролях поиска?

person Rostislav Matl    schedule 14.06.2011