/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using System; namespace Lucene.Net.Search { /// The results of a SpanQueryFilter. Wraps the BitSet and the position information from the SpanQuery /// ///

/// NOTE: This API is still experimental and subject to change. /// /// ///

public class SpanFilterResult { /// /// [Obsolete] private System.Collections.BitArray bits; private DocIdSet docIdSet; private System.Collections.IList positions; //Spans spans; /// /// The bits for the Filter /// /// A List of {@link Lucene.Net.Search.SpanFilterResult.PositionInfo} objects /// /// Use {@link #SpanFilterResult(DocIdSet, List)} instead /// [Obsolete("Use SpanFilterResult(DocIdSet, List) instead")] public SpanFilterResult(System.Collections.BitArray bits, System.Collections.IList positions) { this.bits = bits; this.positions = positions; } /// /// The DocIdSet for the Filter /// /// A List of {@link Lucene.Net.Search.SpanFilterResult.PositionInfo} objects /// public SpanFilterResult(DocIdSet docIdSet, System.Collections.IList positions) { this.docIdSet = docIdSet; this.positions = positions; } /// The first entry in the array corresponds to the first "on" bit. /// Entries are increasing by document order /// /// A List of PositionInfo objects /// public virtual System.Collections.IList GetPositions() { return positions; } /// Use {@link #GetDocIdSet()} /// [Obsolete("Use GetDocIdSet()")] public virtual System.Collections.BitArray GetBits() { return bits; } /// Returns the docIdSet public virtual DocIdSet GetDocIdSet() { return docIdSet; } public class PositionInfo { private int doc; private System.Collections.IList positions; public PositionInfo(int doc) { this.doc = doc; positions = new System.Collections.ArrayList(); } public virtual void AddPosition(int start, int end) { positions.Add(new StartEnd(start, end)); } public virtual int GetDoc() { return doc; } /// /// A List of {@link Lucene.Net.Search.SpanFilterResult.StartEnd} objects /// public virtual System.Collections.IList GetPositions() { return positions; } } public class StartEnd { private int start; private int end; public StartEnd(int start, int end) { this.start = start; this.end = end; } /// /// The end position of this match /// public virtual int GetEnd() { return end; } /// The Start position /// The start position of this match /// public virtual int GetStart() { return start; } } } }