public void ProjectOnto(LuceneBitArray other) { int j = 0; while (j < this.Count) { int i; i = this.GetNextTrueIndex(j); if (i >= this.Count) { break; } j = i + 1; Document doc; doc = searcher.Doc(i, fields_uri); other.AddUri(doc.Get("Uri")); } other.FlushUris(); }
private void CreateQueryWhitelists (ICollection search_subset_uris, LNS.IndexSearcher primary_searcher, LNS.IndexSearcher secondary_searcher, LNS.BooleanQuery primary_prohibited_part_query, LNS.BooleanQuery secondary_prohibited_part_query, out LuceneBitArray primary_whitelist, out LuceneBitArray secondary_whitelist) { primary_whitelist = null; secondary_whitelist = null; if (search_subset_uris != null && search_subset_uris.Count > 0) { primary_whitelist = new LuceneBitArray (primary_searcher); if (secondary_searcher != null) secondary_whitelist = new LuceneBitArray (secondary_searcher); foreach (Uri uri in search_subset_uris) { primary_whitelist.AddUri (uri); if (secondary_whitelist != null) secondary_whitelist.AddUri (uri); } primary_whitelist.FlushUris (); if (secondary_whitelist != null) secondary_whitelist.FlushUris (); } // Build blacklists from our prohibited parts. LuceneBitArray primary_blacklist = null; LuceneBitArray secondary_blacklist = null; if (primary_prohibited_part_query != null) { primary_blacklist = new LuceneBitArray (primary_searcher, primary_prohibited_part_query); if (secondary_searcher != null) { secondary_blacklist = new LuceneBitArray (secondary_searcher); if (secondary_prohibited_part_query != null) secondary_blacklist.Or (secondary_prohibited_part_query); primary_blacklist.Join (secondary_blacklist); } } // Combine our whitelist and blacklist into just a whitelist. if (primary_blacklist != null) { if (primary_whitelist == null) { primary_blacklist.Not (); primary_whitelist = primary_blacklist; } else { primary_whitelist.AndNot (primary_blacklist); } } if (secondary_blacklist != null) { if (secondary_whitelist == null) { secondary_blacklist.Not (); secondary_whitelist = secondary_blacklist; } else { secondary_whitelist.AndNot (secondary_blacklist); } } }
public void ProjectOnto (LuceneBitArray other) { int j = 0; while (j < this.Count) { int i; i = this.GetNextTrueIndex (j); if (i >= this.Count) break; j = i+1; Document doc; doc = searcher.Doc (i, fields_uri); other.AddUri (doc.Get ("Uri")); } other.FlushUris (); }