/* * 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; using System.Collections.Generic; 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 { private DocIdSet docIdSet; private IList positions; //Spans spans; /// /// The DocIdSet for the Filter /// /// A List of objects /// public SpanFilterResult(DocIdSet docIdSet, 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 IList Positions { get { return positions; } } /// Returns the docIdSet public virtual DocIdSet DocIdSet { get { return docIdSet; } } public class PositionInfo { private int doc; private IList positions; public PositionInfo(int doc) { this.doc = doc; positions = new List(); } public virtual void AddPosition(int start, int end) { positions.Add(new StartEnd(start, end)); } public virtual int Doc { get { return doc; } } /// /// A List of <see cref="Lucene.Net.Search.SpanFilterResult.StartEnd" /> objects public virtual IList Positions { get { 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 End { get { return end; } } /// The Start position /// The start position of this match public virtual int Start { get { return start; } } } } }