internal virtual int GetDocIdSetSize(DocIdSet docIdSet) { int size = 0; DocIdSetIterator it = docIdSet.Iterator(); while (it.NextDoc() != DocIdSetIterator.NO_MORE_DOCS) { size++; } return(size); }
private void TstFilterCard(String mes, int expected, Filter filt) { DocIdSetIterator disi = filt.GetDocIdSet(reader).Iterator(); int actual = 0; while (disi.NextDoc() != DocIdSetIterator.NO_MORE_DOCS) { actual++; } Assert.AreEqual(expected, actual, mes); }
private void Initialize() { it1 = parent.innerSet.Iterator(); try { if ((innerDocid = it1.NextDoc()) == DocIdSetIterator.NO_MORE_DOCS) it1 = null; } catch { } }
public override BitArray Bits(IndexReader reader) { BitArray bits = new BitArray(reader.MaxDoc()); DocIdSetIterator it = filter.GetDocIdSet(reader).Iterator(); int doc = DocIdSetIterator.NO_MORE_DOCS; while ((doc = it.NextDoc()) != DocIdSetIterator.NO_MORE_DOCS) { bits.Set(doc, true); } return(bits); }
/// <summary> /// Map each term to the single group that contains it </summary> private static IDictionary <Term, int> TermGroups(JCG.LinkedDictionary <Term, int?> tord, IList <FixedBitSet> bb) // LUCENENET: CA1822: Mark members as static { Dictionary <Term, int> tg = new Dictionary <Term, int>(); Term[] t = tord.Keys.ToArray(/*new Term[0]*/); for (int i = 0; i < bb.Count; i++) // i is the group no. { DocIdSetIterator bits = bb[i].GetIterator(); int ord; while ((ord = bits.NextDoc()) != NO_MORE_DOCS) { tg[t[ord]] = i; } } return(tg); }
/// <summary> /// Map each term to the single group that contains it </summary> private IDictionary <Term, int> TermGroups(LinkedHashMap <Term, int?> tord, IList <FixedBitSet> bb) { Dictionary <Term, int> tg = new Dictionary <Term, int>(); Term[] t = tord.Keys.ToArray(/*new Term[0]*/); for (int i = 0; i < bb.Count; i++) // i is the group no. { DocIdSetIterator bits = bb[i].GetIterator(); int ord; while ((ord = bits.NextDoc()) != NO_MORE_DOCS) { tg[t[ord]] = i; } } return(tg); }
/*[STAThread] * public static void Main(System.String[] args) * { * // TestRunner.run(suite()); // {{Aroush-2.9}} how is this done in NUnit? * }*/ /*public static Test suite() * { * return new TestSuite(typeof(TestBooleanPrefixQuery)); * }*/ /*public TestBooleanPrefixQuery(System.String name):base(name) * { * }*/ private int GetCount(IndexReader r, Query q) { if (q is BooleanQuery) { return(((BooleanQuery)q).GetClauses().Length); } else if (q is ConstantScoreQuery) { DocIdSetIterator iter = ((ConstantScoreQuery)q).GetFilter().GetDocIdSet(r).Iterator(); int count = 0; while (iter.NextDoc() != DocIdSetIterator.NO_MORE_DOCS) { count++; } return(count); } else { throw new System.SystemException("unepxected query " + q); } }
public virtual void TestFilteredDocIdSet() { int maxdoc = 10; DocIdSet innerSet = new AnonymousClassDocIdSet_Renamed_Class(maxdoc, this); DocIdSet filteredSet = new AnonymousClassFilteredDocIdSet(this, innerSet); DocIdSetIterator iter = filteredSet.Iterator(null); System.Collections.ArrayList list = new System.Collections.ArrayList(); int doc = iter.Advance(3, null); if (doc != DocIdSetIterator.NO_MORE_DOCS) { list.Add((System.Int32)doc); while ((doc = iter.NextDoc(null)) != DocIdSetIterator.NO_MORE_DOCS) { list.Add((System.Int32)doc); } } int[] docs = new int[list.Count]; int c = 0; System.Collections.IEnumerator intIter = list.GetEnumerator(); while (intIter.MoveNext()) { docs[c++] = ((System.Int32)intIter.Current); } int[] answer = new int[] { 4, 6, 8 }; bool same = CollectionsHelper.Equals(answer, docs); if (!same) { System.Console.Out.WriteLine("answer: " + _TestUtil.ArrayToString(answer)); System.Console.Out.WriteLine("gotten: " + _TestUtil.ArrayToString(docs)); Assert.Fail(); } }
public override Scorer FilteredScorer(AtomicReaderContext context, Weight weight, DocIdSet docIdSet) { DocIdSetIterator filterIter = docIdSet.GetIterator(); if (filterIter == null) { // this means the filter does not accept any documents. return(null); } int firstFilterDoc = filterIter.NextDoc(); if (firstFilterDoc == DocIdSetIterator.NO_MORE_DOCS) { return(null); } IBits filterAcceptDocs = docIdSet.Bits; // force if RA is requested bool useRandomAccess = filterAcceptDocs != null && UseRandomAccess(filterAcceptDocs, firstFilterDoc); if (useRandomAccess) { // if we are using random access, we return the inner scorer, just with other acceptDocs return(weight.GetScorer(context, filterAcceptDocs)); } else { if (Debugging.AssertsEnabled) { Debugging.Assert(firstFilterDoc > -1); } // we are gonna advance() this scorer, so we set inorder=true/toplevel=false // we pass null as acceptDocs, as our filter has already respected acceptDocs, no need to do twice Scorer scorer = weight.GetScorer(context, null); // TODO once we have way to figure out if we use RA or LeapFrog we can remove this scorer return((scorer == null) ? null : new PrimaryAdvancedLeapFrogScorer(weight, firstFilterDoc, filterIter, scorer)); } }
public virtual void TestFilteredDocIdSet() { const int maxdoc = 10; DocIdSet innerSet = new DocIdSetAnonymousClass(this, maxdoc); DocIdSet filteredSet = new FilteredDocIdSetAnonymousClass(this, innerSet); DocIdSetIterator iter = filteredSet.GetIterator(); IList <int> list = new JCG.List <int>(); int doc = iter.Advance(3); if (doc != DocIdSetIterator.NO_MORE_DOCS) { list.Add(Convert.ToInt32(doc)); while ((doc = iter.NextDoc()) != DocIdSetIterator.NO_MORE_DOCS) { list.Add(Convert.ToInt32(doc)); } } int[] docs = new int[list.Count]; int c = 0; using IEnumerator <int> intIter = list.GetEnumerator(); while (intIter.MoveNext()) { docs[c++] = intIter.Current; } int[] answer = new int[] { 4, 6, 8 }; bool same = Arrays.Equals(answer, docs); if (!same) { Console.WriteLine("answer: " + Arrays.ToString(answer)); Console.WriteLine("gotten: " + Arrays.ToString(docs)); Assert.Fail(); } }
protected virtual int PrimaryNext() { return(primary.NextDoc()); }
public override int NextDoc() { return(docIdSetIterator.NextDoc()); }
public bool MoveNext() { _CurrentDocId = _ResultIterator.NextDoc(); return(_CurrentDocId != DocIdSetIterator.NO_MORE_DOCS && ++_ItemsReturned <= _MaxDocPerFacet); }
public override int NextDoc(IState state) { return(docIdSetIterator.NextDoc(state)); }
public override bool Next() { return(docIdSetIterator.NextDoc() != NO_MORE_DOCS); }
protected internal virtual int PrimaryNext() { return(Primary.NextDoc()); }