Lucene.Net.Index.AtomicReader.TermPositionsEnum C# (CSharp) Method

TermPositionsEnum() public method

Returns DocsAndPositionsEnum for the specified term. this will return null if the field or term does not exist or positions weren't indexed.
public TermPositionsEnum ( Lucene.Net.Index.Term term ) : Lucene.Net.Index.DocsAndPositionsEnum
term Lucene.Net.Index.Term
return Lucene.Net.Index.DocsAndPositionsEnum
        public DocsAndPositionsEnum TermPositionsEnum(Term term)
        {
            Debug.Assert(term.Field() != null);
            Debug.Assert(term.Bytes() != null);
            Fields fields = Fields;
            if (fields != null)
            {
                Terms terms = fields.Terms(term.Field());
                if (terms != null)
                {
                    TermsEnum termsEnum = terms.Iterator(null);
                    if (termsEnum.SeekExact(term.Bytes()))
                    {
                        return termsEnum.DocsAndPositions(LiveDocs, null);
                    }
                }
            }
            return null;
        }

Usage Example

        public virtual void TestDocsAndPositionsEnumStart()
        {
            Directory         dir    = NewDirectory();
            RandomIndexWriter writer = new RandomIndexWriter(Random(), dir);
            Document          doc    = new Document();

            doc.Add(NewTextField("foo", "bar", Field.Store.NO));
            writer.AddDocument(doc);
            DirectoryReader      reader = writer.Reader;
            AtomicReader         r      = GetOnlySegmentReader(reader);
            DocsAndPositionsEnum disi   = r.TermPositionsEnum(new Term("foo", "bar"));
            int docid = disi.DocID();

            Assert.AreEqual(-1, docid);
            Assert.IsTrue(disi.NextDoc() != DocIdSetIterator.NO_MORE_DOCS);

            // now reuse and check again
            TermsEnum te = r.Terms("foo").Iterator(null);

            Assert.IsTrue(te.SeekExact(new BytesRef("bar")));
            disi  = te.DocsAndPositions(null, disi);
            docid = disi.DocID();
            Assert.AreEqual(-1, docid);
            Assert.IsTrue(disi.NextDoc() != DocIdSetIterator.NO_MORE_DOCS);
            writer.Dispose();
            r.Dispose();
            dir.Dispose();
        }
All Usage Examples Of Lucene.Net.Index.AtomicReader::TermPositionsEnum