/** Get {@link DocsAndPositionsEnum} for the current term. * Do not call this when the enum is unpositioned. This * method will return null if positions were not * indexed. * * @param liveDocs unset bits are documents that should not * be returned * @param reuse pass a prior DocsAndPositionsEnum for possible reuse * @see #docsAndPositions(Bits, DocsAndPositionsEnum, int) * @deprecated Use {@link #postings(PostingsEnum, int)} instead */ @Deprecated public final DocsAndPositionsEnum docsAndPositions(Bits liveDocs, DocsAndPositionsEnum reuse) throws IOException { return docsAndPositions(liveDocs, reuse, DocsAndPositionsEnum.FLAG_OFFSETS | DocsAndPositionsEnum.FLAG_PAYLOADS); }
/** Get {@link DocsAndPositionsEnum} for the current term. * Do not call this when the enum is unpositioned. This * method will return null if positions were not * indexed. * * @param liveDocs unset bits are documents that should not * be returned * @param reuse pass a prior DocsAndPositionsEnum for possible reuse * @see #docsAndPositions(Bits, DocsAndPositionsEnum, int) * @deprecated Use {@link #postings(PostingsEnum, int)} instead */ @Deprecated public final DocsAndPositionsEnum docsAndPositions(Bits liveDocs, DocsAndPositionsEnum reuse) throws IOException { return docsAndPositions(liveDocs, reuse, DocsAndPositionsEnum.FLAG_OFFSETS | DocsAndPositionsEnum.FLAG_PAYLOADS); }
// IndexReader ir; // int docID = 0; Terms terms = ir.getTermVector(docID, "text"); terms.hasPositions(); // should be true if you set the field to store positions TermsEnum termsEnum = terms.iterator(null); BytesRef term = null; // Explore the terms for this field while ((term = termsEnum.next()) != null) { // Enumerate through documents, in this case only one DocsAndPositionsEnum docsEnum = termsEnum.docsAndPositions(null, null); int docIdEnum; while ((docIdEnum = docsEnum.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) { for (int i = 0; i < docsEnum.freq(); i++) { System.out.println(term.utf8ToString() + " " + docIdEnum + " " + docsEnum.nextPosition()); } } }
@Override public Scorer scorer(final AtomicReaderContext context, final Bits acceptDocs) throws IOException { assert termStates.topReaderContext == ReaderUtil.getTopLevelContext(context) : "The top-reader used to create " + "Weight (" + termStates.topReaderContext + ") is not the same as the current reader's top-reader (" + ReaderUtil.getTopLevelContext(context); final TermsEnum termsEnum = this.getTermsEnum(context); if (termsEnum == null) { return null; } final DocsAndPositionsEnum docsEnum = termsEnum.docsAndPositions(acceptDocs, null); final DocsNodesAndPositionsEnum sirenDocsEnum = NodeTermQuery.this.getDocsNodesAndPositionsEnum(docsEnum); return new NodeTermScorer(this, sirenDocsEnum, similarity.simScorer(stats, context)); }
@Override public Scorer scorer(final AtomicReaderContext context, final boolean scoreDocsInOrder, final boolean topScorer, final Bits acceptDocs) throws IOException { assert termStates.topReaderContext == ReaderUtil.getTopLevelContext(context) : "The top-reader used to create Weight (" + termStates.topReaderContext + ") is not the same as the current reader's top-reader (" + ReaderUtil.getTopLevelContext(context); final TermsEnum termsEnum = this.getTermsEnum(context); if (termsEnum == null) { return null; } final DocsAndPositionsEnum docsEnum = termsEnum.docsAndPositions(acceptDocs, null); final DocsNodesAndPositionsEnum sirenDocsEnum = NodeTermQuery.this.getDocsNodesAndPositionsEnum(docsEnum); return new NodeTermScorer(this, sirenDocsEnum, this.createDocScorer(context)); }
final DocsNodesAndPositionsEnum postingsEnum = NodePhraseQuery.this.getDocsNodesAndPositionsEnum(te.docsAndPositions(liveDocs, null));
@Override public Scorer scorer(final AtomicReaderContext context, final Bits acceptDocs) throws IOException { assert termStates.topReaderContext == ReaderUtil.getTopLevelContext(context) : "The top-reader used to create " + "Weight (" + termStates.topReaderContext + ") is not the same as the current reader's top-reader (" + ReaderUtil.getTopLevelContext(context); final TermsEnum termsEnum = this.getTermsEnum(context); if (termsEnum == null) { return null; } final DocsAndPositionsEnum docsEnum = termsEnum.docsAndPositions(acceptDocs, null); final DocsNodesAndPositionsEnum sirenDocsEnum = TermSpanQuery.this.getDocsNodesAndPositionsEnum(docsEnum); TermSpans spans = new TermSpans(sirenDocsEnum, term, similarity.simScorer(stats, context)); return new SpanScorer(this, spans); }
/** Returns {@link DocsAndPositionsEnum} for the specified * term. This will return null if the * field or term does not exist or positions weren't indexed. * @deprecated use {@link #postings(Term, int)} instead */ @Deprecated public final DocsAndPositionsEnum termPositionsEnum(Term term) throws IOException { assert term.field() != null; assert term.bytes() != null; final Terms terms = terms(term.field()); if (terms != null) { final TermsEnum termsEnum = terms.iterator(); if (termsEnum.seekExact(term.bytes())) { return termsEnum.docsAndPositions(getLiveDocs(), null); } } return null; } }
DocsAndPositionsEnum payloads = null; TermsEnum iterator = null; Terms termVector = reader.getTermVector(docId, "field"); iterator = termVector.iterator(iterator); while ((ref = iterator.next()) != null) { payloads = iterator.docsAndPositions(null, payloads, DocsAndPositionsEnum.FLAG_PAYLOADS); while (payloads.nextDoc() != DocIdSetIterator.NO_MORE_DOCS) { int freq = payloads.freq(); for (int i = 0; i < freq; i++) { payloads.nextPosition(); BytesRef payload = payloads.getPayload(); // do something with the payload } } }
/** Returns {@link DocsAndPositionsEnum} for the specified * term. This will return null if the * field or term does not exist or positions weren't indexed. * @deprecated use {@link #postings(Term, int)} instead */ @Deprecated public final DocsAndPositionsEnum termPositionsEnum(Term term) throws IOException { assert term.field() != null; assert term.bytes() != null; final Terms terms = terms(term.field()); if (terms != null) { final TermsEnum termsEnum = terms.iterator(); if (termsEnum.seekExact(term.bytes())) { return termsEnum.docsAndPositions(getLiveDocs(), null); } } return null; } }
final DocsNodesAndPositionsEnum postingsEnum = NodePhraseQuery.this.getDocsNodesAndPositionsEnum(te.docsAndPositions(liveDocs, null));
boboTerm.term = text.utf8ToString(); boboTerm.freq = (int) termsEnum.totalTermFreq(); docsAndPositions = termsEnum.docsAndPositions(null, docsAndPositions); if (docsAndPositions != null) { docsAndPositions.nextDoc();
DocsAndPositionsEnum newDpe = te.docsAndPositions(live, dpe, 0); if (newDpe == null) { // no position info for this field break;
assertEquals( 2, totalTermFreq ); final DocsAndPositionsEnum docsAndPositions = iterator.docsAndPositions( null, null ); docsAndPositions.advance( 0 );//move to Document id 0