Безопасность (иначе Полномочия) и Lucene - Как? Это должно быть сделано?

Небольшое изменение вашего кода

index = list(df.index[df['Name'] == 'Bob'])

должно дать вам позицию. Дайте мне знать, если это работает

19
задан mP. 5 May 2009 в 12:58
поделиться

2 ответа

Это зависит от вашей модели безопасности. Если разрешения просты - скажем, у вас есть три класса документов - вероятно, лучше создать отдельный индекс Lucene для каждого класса и объединить результаты, когда пользователь сможет увидеть более одного класса. Вики Solr по безопасности предлагает нечто похожее на предложение HakonB - добавление учетных данных пользователя в запрос и поиск по ним. См. Также это обсуждение в группе пользователей Lucene . Другая стратегия будет заключаться в том, чтобы обернуть поиск Lucene отдельным классом безопасности, который выполняет дополнительную фильтрацию из Lucene. Это может быть быстрее, если вы можете сделать это, используя базу данных для разрешений.

Редактировать: Я вижу, у вас довольно сложная система разрешений. Ваш основной выбор дизайна заключается в том, внедрять ли его в Lucene или вне Lucene. Мой совет - использовать Lucene в качестве поисковой системы (ее основное преимущество) и использовать другую систему / приложение для безопасности. Если вы все равно решите использовать Lucene для обеспечения безопасности, я предлагаю вам хорошо изучить Lucene Filters и использовать фильтр битовых наборов для фильтрации результатов запроса. У него есть проблемы, которые вы перечислили, из-за необходимости обновлять разрешения.

3
ответ дан 30 November 2019 в 05:17
поделиться

Это зависит от количества различных групп безопасности, которые имеют отношение к вашему контексту, и от того, как защита применяется к вашим проиндексированным данным.

У нас была похожая проблема, которую мы решили следующим образом: при индексации мы добавляли в документ разрешенные группы, а при поиске добавляли логический запрос с группами, в которые входил пользователь. Это хорошо сработало в нашем сценарии.

7
ответ дан 30 November 2019 в 05:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: