public override SpanFilterResult BitSpans(IndexReader reader) { System.Collections.BitArray bits = new System.Collections.BitArray((reader.MaxDoc() % 64 == 0 ? reader.MaxDoc() / 64 : reader.MaxDoc() / 64 + 1) * 64); Lucene.Net.Search.Spans.Spans spans = query.GetSpans(reader); System.Collections.IList tmp = new System.Collections.ArrayList(20); int currentDoc = -1; SpanFilterResult.PositionInfo currentInfo = null; while (spans.Next()) { int doc = spans.Doc(); bits.Set(doc, true); if (currentDoc != doc) { currentInfo = new SpanFilterResult.PositionInfo(doc); tmp.Add(currentInfo); currentDoc = doc; } currentInfo.AddPosition(spans.Start(), spans.End()); } return(new SpanFilterResult(bits, tmp)); }
public override SpanFilterResult BitSpans(IndexReader reader, IState state) { OpenBitSet bits = new OpenBitSet(reader.MaxDoc); Lucene.Net.Search.Spans.Spans spans = internalQuery.GetSpans(reader, state); IList <SpanFilterResult.PositionInfo> tmp = new List <SpanFilterResult.PositionInfo>(20); int currentDoc = -1; SpanFilterResult.PositionInfo currentInfo = null; while (spans.Next(state)) { int doc = spans.Doc(); bits.Set(doc); if (currentDoc != doc) { currentInfo = new SpanFilterResult.PositionInfo(doc); tmp.Add(currentInfo); currentDoc = doc; } currentInfo.AddPosition(spans.Start(), spans.End()); } return(new SpanFilterResult(bits, tmp)); }
/// <summary> By default, uses the {@link PayloadFunction} to score the payloads, but /// can be overridden to do other things. /// /// </summary> /// <param name="payLoads">The payloads /// </param> /// <param name="start">The start position of the span being scored /// </param> /// <param name="end">The end position of the span being scored /// /// </param> /// <seealso cref="Spans"> /// </seealso> protected internal virtual void ProcessPayloads(System.Collections.Generic.ICollection <byte[]> payLoads, int start, int end) { foreach (byte[] thePayload in payLoads) { payloadScore = Enclosing_Instance.function.CurrentScore(doc, Enclosing_Instance.fieldName, start, end, payloadsSeen, payloadScore, similarity.ScorePayload(doc, Enclosing_Instance.fieldName, spans.Start(), spans.End(), thePayload, 0, thePayload.Length)); ++payloadsSeen; } }