Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: coulixОтветов: 1

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

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

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

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

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

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

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

architecturefull-text-searchalgorithm

Ответы

Ответ 1 · Rostislav Matl

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы