/// <summary> /// Pushes pending positions to the wrapped codec. /// </summary> private void Push() { if (Debugging.AssertsEnabled) { Debugging.Assert(_pendingCount == _pending.Length); } _wrappedPostingsWriter.StartTerm(); // Flush all buffered docs // LUCENENET specific - to avoid boxing, changed from CompareTo() to IndexOptionsComparer.Compare() if (IndexOptionsComparer.Default.Compare(_indexOptions, IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0) { Position doc = null; foreach (var pos in _pending) { if (doc == null) { doc = pos; _wrappedPostingsWriter.StartDoc(doc.docID, doc.termFreq); } else if (doc.docID != pos.docID) { if (Debugging.AssertsEnabled) { Debugging.Assert(pos.docID > doc.docID); } _wrappedPostingsWriter.FinishDoc(); doc = pos; _wrappedPostingsWriter.StartDoc(doc.docID, doc.termFreq); } _wrappedPostingsWriter.AddPosition(pos.pos, pos.payload, pos.startOffset, pos.endOffset); } //wrappedPostingsWriter.finishDoc(); } else { foreach (var doc in _pending) { _wrappedPostingsWriter.StartDoc(doc.docID, _indexOptions == IndexOptions.DOCS_ONLY ? 0 : doc.termFreq); } } _pendingCount = -1; }
// Pushes pending positions to the wrapped codec private void Push() { Debug.Assert(_pendingCount == _pending.Length); _wrappedPostingsWriter.StartTerm(); // Flush all buffered docs if (_indexOptions.CompareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0) { Position doc = null; foreach (var pos in _pending) { if (doc == null) { doc = pos; _wrappedPostingsWriter.StartDoc(doc.docID, doc.termFreq); } else if (doc.docID != pos.docID) { Debug.Assert(pos.docID > doc.docID); _wrappedPostingsWriter.FinishDoc(); doc = pos; _wrappedPostingsWriter.StartDoc(doc.docID, doc.termFreq); } _wrappedPostingsWriter.AddPosition(pos.pos, pos.payload, pos.startOffset, pos.endOffset); } //wrappedPostingsWriter.finishDoc(); } else { foreach (var doc in _pending) { _wrappedPostingsWriter.StartDoc(doc.docID, _indexOptions == IndexOptions.DOCS_ONLY ? 0 : doc.termFreq); } } _pendingCount = -1; }
public override PostingsConsumer StartTerm(BytesRef text) { //System.out.println("BTW: startTerm term=" + fieldInfo.name + ":" + text.utf8ToString() + " " + text + " seg=" + segment); postingsWriter.StartTerm(); return(postingsWriter); }
public override PostingsConsumer StartTerm(BytesRef text) { _postingsWriter.StartTerm(); return(_postingsWriter); }