Надеюсь, это будет очень простой вопрос для кого-то ....
В основном мы индексируем информацию о безопасности для моих документов в lucene.net, информация хранится в 2 полях документа, которые называются viewuserids и viewroleids , поэтому при построении запроса возвращаются только документы, к которым у пользователя есть доступ к просмотру.
Требуемая функциональность для запроса заключается в том, что нам нужны только документывозвращается, если пользователь принадлежит ролям, хранящимся в viewroleids (этот бит работает нормально), однако, если viewuserids поле содержит любые идентификаторы (поле может не содержать никаких значений) виндекс viewroleids следует игнорировать, и только пользователи, присутствующие в viewuserids , должны иметь возможность видеть документ.
Как упоминалось выше, роль роли работает, как и ожидалось., но нам нужно немного помочь в создании запроса термина в API, чтобы учесть viewuserids (эффективнопо запросу viewroleids .Это то, что мы имеем до сих пор:
BooleanQuery bq = new BooleanQuery();
foreach (int roleId in roleIds)
{
bq.Add(new TermQuery(new Term("viewroleid", roleId.ToString())),BooleanClause.Occur.SHOULD);
}
bq.Add(new TermQuery(new Term("viewuserid", User.Id.ToString())), BooleanClause.Occur.SHOULD);
Заранее благодарим за любую помощь!
ПРИМЕЧАНИЕ: оба поля хранятся в индексе без маркеров