It works.
For those using Lucene.NET here is an example of a Filter that takes a list
of IDs for books:


    public class BookFilter: Filter
    {
        private readonly List<int> bookIDs;

        public BookFilter(List<int> bookIDsToSearch)
        {
            bookIDs = bookIDsToSearch;
        }

        public override BitArray Bits(IndexReader reader)
        {
            BitArray bits = new BitArray(50000);
            int[] docs = new int[1];
            int[] freqs = new int[1];

            foreach (int bookID in bookIDs)
            {
                TermDocs termDocs = reader.TermDocs(new Term("id",
bookID.ToString()));
                int count = termDocs.Read(docs, freqs);
                if(count==1)
                    bits.Set(docs[0],true);
            }
            return bits;
        }
    }

Reply via email to