public override DocsEnum Docs(IBits liveDocs, DocsEnum reuse, DocsFlags flags) { throw new NotSupportedException(); }
public override DocsEnum Docs(IBits liveDocs, DocsEnum reuse, DocsFlags flags) { DecodeMetaData(); return(outerInstance.outerInstance.postingsReader.Docs(outerInstance.fieldInfo, state, liveDocs, reuse, flags)); }
public override DocsEnum Docs(IBits liveDocs, DocsEnum reuse, DocsFlags flags) { throw UnsupportedOperationException.Create(); }
/// <summary> /// Returns <see cref="DocsEnum"/> for the specified field & /// term, with control over whether freqs are required. /// Some codecs may be able to optimize their /// implementation when freqs are not required. This will /// return <c>null</c> if the field or term does not exist. See /// <see cref="TermsEnum.Docs(IBits, DocsEnum, DocsFlags)"/>. /// </summary> public static DocsEnum GetTermDocsEnum(IndexReader r, IBits liveDocs, string field, BytesRef term, DocsFlags flags) { if (Debugging.AssertsEnabled) { Debugging.Assert(field != null); Debugging.Assert(term != null); } Terms terms = GetTerms(r, field); if (terms != null) { TermsEnum termsEnum = terms.GetEnumerator(); if (termsEnum.SeekExact(term)) { return(termsEnum.Docs(liveDocs, null, flags)); } } return(null); }
public override DocsEnum Docs(IBits liveDocs, DocsEnum reuse, DocsFlags flags) { throw new InvalidOperationException("this method should never be called"); }
public override DocsEnum Docs(IBits liveDocs, DocsEnum reuse, DocsFlags flags) { MultiDocsEnum docsEnum; // Can only reuse if incoming enum is also a MultiDocsEnum if (reuse != null && reuse is MultiDocsEnum) { docsEnum = (MultiDocsEnum)reuse; // ... and was previously created w/ this MultiTermsEnum: if (!docsEnum.CanReuse(this)) { docsEnum = new MultiDocsEnum(this, subs.Length); } } else { docsEnum = new MultiDocsEnum(this, subs.Length); } MultiBits multiLiveDocs; if (liveDocs is MultiBits) { multiLiveDocs = (MultiBits)liveDocs; } else { multiLiveDocs = null; } int upto = 0; for (int i = 0; i < numTop; i++) { TermsEnumWithSlice entry = top[i]; IBits b; if (multiLiveDocs != null) { // optimize for common case: requested skip docs is a // congruent sub-slice of MultiBits: in this case, we // just pull the liveDocs from the sub reader, rather // than making the inefficient // Slice(Multi(sub-readers)): MultiBits.SubResult sub = multiLiveDocs.GetMatchingSub(entry.SubSlice); if (sub.Matches) { b = sub.Result; } else { // custom case: requested skip docs is foreign: // must slice it on every access b = new BitsSlice(liveDocs, entry.SubSlice); } } else if (liveDocs != null) { b = new BitsSlice(liveDocs, entry.SubSlice); } else { // no deletions b = null; } if (Debugging.AssertsEnabled) { Debugging.Assert(entry.Index < docsEnum.subDocsEnum.Length, "{0} vs {1}; {2}", entry.Index, docsEnum.subDocsEnum.Length, subs.Length); } DocsEnum subDocsEnum = entry.Terms.Docs(b, docsEnum.subDocsEnum[entry.Index], flags); if (subDocsEnum != null) { docsEnum.subDocsEnum[entry.Index] = subDocsEnum; subDocs[upto].DocsEnum = subDocsEnum; subDocs[upto].Slice = entry.SubSlice; upto++; } else { // should this be an error? if (Debugging.AssertsEnabled) { Debugging.Assert(false, "One of our subs cannot provide a docsenum"); } } } if (upto == 0) { return(null); } else { return(docsEnum.Reset(subDocs, upto)); } }
public override DocsEnum Docs(IBits liveDocs, DocsEnum reuse, DocsFlags flags) { return(new RAMDocsEnum(ramField.termToDocs[current], liveDocs)); }
/// <summary> /// Returns a <see cref="DocsEnum"/> from a positioned <see cref="TermsEnum"/>, but /// randomly sometimes uses a <see cref="MultiDocsEnum"/>, <see cref="DocsAndPositionsEnum"/>. /// </summary> public static DocsEnum Docs(Random random, TermsEnum termsEnum, IBits liveDocs, DocsEnum reuse, DocsFlags flags) { if (random.NextBoolean()) { if (random.NextBoolean()) { DocsAndPositionsFlags posFlags; switch (random.Next(4)) { case 0: posFlags = 0; break; case 1: posFlags = DocsAndPositionsFlags.OFFSETS; break; case 2: posFlags = DocsAndPositionsFlags.PAYLOADS; break; default: posFlags = DocsAndPositionsFlags.OFFSETS | DocsAndPositionsFlags.PAYLOADS; break; } // TODO: cast to DocsAndPositionsEnum? DocsAndPositionsEnum docsAndPositions = termsEnum.DocsAndPositions(liveDocs, null, posFlags); if (docsAndPositions != null) { return(docsAndPositions); } } flags |= DocsFlags.FREQS; } return(termsEnum.Docs(liveDocs, reuse, flags)); }
public override DocsEnum Docs(IBits liveDocs, DocsEnum reuse, DocsFlags flags) { throw IllegalStateException.Create("this method should never be called"); }
public override DocsEnum Docs(IBits liveDocs, DocsEnum reuse, DocsFlags flags) { return(Delegate.Docs(liveDocs, reuse, flags)); }
public override DocsEnum Docs(IBits liveDocs, DocsEnum reuse, DocsFlags flags) { return(m_input.Docs(liveDocs, reuse, flags)); }
public override DocsEnum Docs(FieldInfo fieldInfo, BlockTermState termState, IBits liveDocs, DocsEnum reuse, DocsFlags flags) { if (CanReuse(reuse, liveDocs)) { // if (DEBUG) System.out.println("SPR.docs ts=" + termState2); return(((SegmentDocsEnumBase)reuse).Reset(fieldInfo, (StandardTermState)termState)); } return(NewDocsEnum(liveDocs, fieldInfo, (StandardTermState)termState)); }
/// <summary> /// Must fully consume state, since after this call that /// <see cref="TermState"/> may be reused. /// </summary> public abstract DocsEnum Docs(FieldInfo fieldInfo, BlockTermState state, IBits skipDocs, DocsEnum reuse, DocsFlags flags);
public override DocsEnum Docs(IBits bits, DocsEnum reuse, DocsFlags flags) { return(tenum.Docs(bits, reuse, flags)); }
/// <summary> /// Get <see cref="DocsEnum"/> for the current term, with /// control over whether freqs are required. Do not /// call this when the enum is unpositioned. This method /// will not return <c>null</c>. /// </summary> /// <param name="liveDocs"> Unset bits are documents that should not /// be returned </param> /// <param name="reuse"> Pass a prior DocsEnum for possible reuse </param> /// <param name="flags"> Specifies which optional per-document values /// you require; <see cref="DocsFlags"/></param> /// <seealso cref="Docs(IBits, DocsEnum)"/> public abstract DocsEnum Docs(IBits liveDocs, DocsEnum reuse, DocsFlags flags);
public override DocsEnum Docs(IBits liveDocs, DocsEnum reuse, DocsFlags flags) { return(actualEnum.Docs(liveDocs, reuse, flags)); }
/// <summary> /// Returns a <see cref="DocsEnum"/>, but randomly sometimes uses a /// <see cref="MultiDocsEnum"/>, <see cref="DocsAndPositionsEnum"/>. Returns null /// if field/term doesn't exist. /// </summary> public static DocsEnum Docs(Random random, IndexReader r, string field, BytesRef term, IBits liveDocs, DocsEnum reuse, DocsFlags flags) { Terms terms = MultiFields.GetTerms(r, field); if (terms == null) { return(null); } TermsEnum termsEnum = terms.GetEnumerator(); if (!termsEnum.SeekExact(term)) { return(null); } return(Docs(random, termsEnum, liveDocs, reuse, flags)); }