LUCENE-6997: refactor GeoPointField and query classes from lucene.spatial to lucene.spatial.geopoint package

This commit is contained in:
nknize 2016-02-09 21:51:30 -06:00
parent b889109da1
commit 7d8f0127b7
20 changed files with 47 additions and 48 deletions

View File

@ -149,7 +149,7 @@ New Features
API Changes API Changes
* LUCENE-6997: refactor sandboxed GeoPointField and query classes to lucene-spatial * LUCENE-6997: refactor sandboxed GeoPointField and query classes to lucene-spatial
module (Nick Knize) module under new lucene.spatial.geopoint package (Nick Knize)
* LUCENE-6908: GeoUtils static relational methods have been refactored to new * LUCENE-6908: GeoUtils static relational methods have been refactored to new
GeoRelationUtils and now correctly handle large irregular rectangles, and GeoRelationUtils and now correctly handle large irregular rectangles, and

View File

@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.lucene.spatial.document; package org.apache.lucene.spatial.geopoint.document;
import org.apache.lucene.document.Field; import org.apache.lucene.document.Field;
import org.apache.lucene.document.FieldType; import org.apache.lucene.document.FieldType;
@ -36,8 +36,8 @@ import org.apache.lucene.spatial.util.GeoEncodingUtils;
* </pre> * </pre>
* *
* <p>To perform simple geospatial queries against a <code>GeoPointField</code>, * <p>To perform simple geospatial queries against a <code>GeoPointField</code>,
* see {@link org.apache.lucene.spatial.search.GeoPointInBBoxQuery}, {@link org.apache.lucene.spatial.search.GeoPointInPolygonQuery}, * see {@link org.apache.lucene.spatial.geopoint.search.GeoPointInBBoxQuery}, {@link org.apache.lucene.spatial.geopoint.search.GeoPointInPolygonQuery},
* or {@link org.apache.lucene.spatial.search.GeoPointDistanceQuery} * or {@link org.apache.lucene.spatial.geopoint.search.GeoPointDistanceQuery}
* *
* NOTE: This indexes only high precision encoded terms which may result in visiting a high number * NOTE: This indexes only high precision encoded terms which may result in visiting a high number
* of terms for large queries. See LUCENE-6481 for a future improvement. * of terms for large queries. See LUCENE-6481 for a future improvement.

View File

@ -1,4 +1,4 @@
package org.apache.lucene.spatial.document; package org.apache.lucene.spatial.geopoint.document;
/* /*
* Licensed to the Apache Software Foundation (ASF) under one or more * Licensed to the Apache Software Foundation (ASF) under one or more
@ -31,7 +31,7 @@ import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefBuilder; import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.spatial.util.GeoEncodingUtils; import org.apache.lucene.spatial.util.GeoEncodingUtils;
import static org.apache.lucene.spatial.document.GeoPointField.PRECISION_STEP; import static org.apache.lucene.spatial.geopoint.document.GeoPointField.PRECISION_STEP;
/** /**
* <b>Expert:</b> This class provides a {@link TokenStream} used by {@link GeoPointField} * <b>Expert:</b> This class provides a {@link TokenStream} used by {@link GeoPointField}

View File

@ -18,4 +18,4 @@
/** /**
* Geospatial Field Implementations for Core Lucene * Geospatial Field Implementations for Core Lucene
*/ */
package org.apache.lucene.spatial.document; package org.apache.lucene.spatial.geopoint.document;

View File

@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
import org.apache.lucene.spatial.util.GeoUtils; import org.apache.lucene.spatial.util.GeoUtils;

View File

@ -14,13 +14,13 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.Query; import org.apache.lucene.search.Query;
import org.apache.lucene.spatial.document.GeoPointField.TermEncoding; import org.apache.lucene.spatial.geopoint.document.GeoPointField.TermEncoding;
import org.apache.lucene.spatial.util.GeoDistanceUtils; import org.apache.lucene.spatial.util.GeoDistanceUtils;
import org.apache.lucene.spatial.util.GeoRect; import org.apache.lucene.spatial.util.GeoRect;
import org.apache.lucene.spatial.util.GeoUtils; import org.apache.lucene.spatial.util.GeoUtils;
@ -50,7 +50,7 @@ public class GeoPointDistanceQuery extends GeoPointInBBoxQuery {
protected final double radiusMeters; protected final double radiusMeters;
/** /**
* Constructs a Query for all {@link org.apache.lucene.spatial.document.GeoPointField} types within a * Constructs a Query for all {@link org.apache.lucene.spatial.geopoint.document.GeoPointField} types within a
* distance (in meters) from a given point * distance (in meters) from a given point
**/ **/
public GeoPointDistanceQuery(final String field, final double centerLon, final double centerLat, final double radiusMeters) { public GeoPointDistanceQuery(final String field, final double centerLon, final double centerLat, final double radiusMeters) {

View File

@ -14,10 +14,10 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
import org.apache.lucene.search.MultiTermQuery; import org.apache.lucene.search.MultiTermQuery;
import org.apache.lucene.spatial.document.GeoPointField.TermEncoding; import org.apache.lucene.spatial.geopoint.document.GeoPointField.TermEncoding;
import org.apache.lucene.spatial.util.GeoRect; import org.apache.lucene.spatial.util.GeoRect;
import org.apache.lucene.spatial.util.GeoRelationUtils; import org.apache.lucene.spatial.util.GeoRelationUtils;
import org.apache.lucene.util.SloppyMath; import org.apache.lucene.util.SloppyMath;

View File

@ -14,16 +14,16 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.Query; import org.apache.lucene.search.Query;
import org.apache.lucene.spatial.document.GeoPointField.TermEncoding; import org.apache.lucene.spatial.geopoint.document.GeoPointField.TermEncoding;
/** Implements a point distance range query on a GeoPoint field. This is based on /** Implements a point distance range query on a GeoPoint field. This is based on
* {@code org.apache.lucene.spatial.search.GeoPointDistanceQuery} and is implemented using a * {@code org.apache.lucene.spatial.geopoint.search.GeoPointDistanceQuery} and is implemented using a
* {@code org.apache.lucene.search.BooleanClause.MUST_NOT} clause to exclude any points that fall within * {@code org.apache.lucene.search.BooleanClause.MUST_NOT} clause to exclude any points that fall within
* minRadiusMeters from the provided point. * minRadiusMeters from the provided point.
* *
@ -33,7 +33,7 @@ public final class GeoPointDistanceRangeQuery extends GeoPointDistanceQuery {
protected final double minRadiusMeters; protected final double minRadiusMeters;
/** /**
* Constructs a query for all {@link org.apache.lucene.spatial.document.GeoPointField} types within a minimum / maximum * Constructs a query for all {@link org.apache.lucene.spatial.geopoint.document.GeoPointField} types within a minimum / maximum
* distance (in meters) range from a given point * distance (in meters) range from a given point
*/ */
public GeoPointDistanceRangeQuery(final String field, final double centerLon, final double centerLat, public GeoPointDistanceRangeQuery(final String field, final double centerLon, final double centerLat,

View File

@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanClause;
@ -22,7 +22,7 @@ import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.FieldValueQuery; import org.apache.lucene.search.FieldValueQuery;
import org.apache.lucene.search.LegacyNumericRangeQuery; import org.apache.lucene.search.LegacyNumericRangeQuery;
import org.apache.lucene.search.Query; import org.apache.lucene.search.Query;
import org.apache.lucene.spatial.document.GeoPointField.TermEncoding; import org.apache.lucene.spatial.geopoint.document.GeoPointField.TermEncoding;
import org.apache.lucene.spatial.util.GeoUtils; import org.apache.lucene.spatial.util.GeoUtils;
/** Implements a simple bounding box query on a GeoPoint field. This is inspired by /** Implements a simple bounding box query on a GeoPoint field. This is inspired by
@ -53,7 +53,7 @@ public class GeoPointInBBoxQuery extends Query {
protected final TermEncoding termEncoding; protected final TermEncoding termEncoding;
/** /**
* Constructs a query for all {@link org.apache.lucene.spatial.document.GeoPointField} types that fall within a * Constructs a query for all {@link org.apache.lucene.spatial.geopoint.document.GeoPointField} types that fall within a
* defined bounding box * defined bounding box
*/ */
public GeoPointInBBoxQuery(final String field, final double minLon, final double minLat, final double maxLon, final double maxLat) { public GeoPointInBBoxQuery(final String field, final double minLon, final double minLat, final double maxLon, final double maxLat) {

View File

@ -14,12 +14,12 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
import org.apache.lucene.search.MultiTermQuery; import org.apache.lucene.search.MultiTermQuery;
import org.apache.lucene.util.SloppyMath; import org.apache.lucene.util.SloppyMath;
import org.apache.lucene.spatial.document.GeoPointField; import org.apache.lucene.spatial.geopoint.document.GeoPointField;
import org.apache.lucene.spatial.document.GeoPointField.TermEncoding; import org.apache.lucene.spatial.geopoint.document.GeoPointField.TermEncoding;
import org.apache.lucene.spatial.util.GeoRelationUtils; import org.apache.lucene.spatial.util.GeoRelationUtils;
/** Package private implementation for the public facing GeoPointInBBoxQuery delegate class. /** Package private implementation for the public facing GeoPointInBBoxQuery delegate class.

View File

@ -14,13 +14,13 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
import java.util.Arrays; import java.util.Arrays;
import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.Query; import org.apache.lucene.search.Query;
import org.apache.lucene.spatial.document.GeoPointField.TermEncoding; import org.apache.lucene.spatial.geopoint.document.GeoPointField.TermEncoding;
import org.apache.lucene.spatial.util.GeoEncodingUtils; import org.apache.lucene.spatial.util.GeoEncodingUtils;
import org.apache.lucene.spatial.util.GeoRect; import org.apache.lucene.spatial.util.GeoRect;
import org.apache.lucene.spatial.util.GeoUtils; import org.apache.lucene.spatial.util.GeoUtils;
@ -55,7 +55,7 @@ public final class GeoPointInPolygonQuery extends GeoPointInBBoxQuery {
} }
/** /**
* Constructs a new GeoPolygonQuery that will match encoded {@link org.apache.lucene.spatial.document.GeoPointField} terms * Constructs a new GeoPolygonQuery that will match encoded {@link org.apache.lucene.spatial.geopoint.document.GeoPointField} terms
* that fall within or on the boundary of the polygon defined by the input parameters. * that fall within or on the boundary of the polygon defined by the input parameters.
*/ */
public GeoPointInPolygonQuery(final String field, final TermEncoding termEncoding, final double[] polyLons, final double[] polyLats) { public GeoPointInPolygonQuery(final String field, final TermEncoding termEncoding, final double[] polyLons, final double[] polyLats) {

View File

@ -14,10 +14,10 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
import org.apache.lucene.search.MultiTermQuery; import org.apache.lucene.search.MultiTermQuery;
import org.apache.lucene.spatial.document.GeoPointField.TermEncoding; import org.apache.lucene.spatial.geopoint.document.GeoPointField.TermEncoding;
import org.apache.lucene.spatial.util.GeoRelationUtils; import org.apache.lucene.spatial.util.GeoRelationUtils;
/** Package private implementation for the public facing GeoPointInPolygonQuery delegate class. /** Package private implementation for the public facing GeoPointInPolygonQuery delegate class.
@ -44,7 +44,7 @@ final class GeoPointInPolygonQueryImpl extends GeoPointInBBoxQueryImpl {
} }
/** /**
* Custom {@code org.apache.lucene.spatial.search.GeoPointMultiTermQuery.CellComparator} that computes morton hash * Custom {@code org.apache.lucene.spatial.geopoint.search.GeoPointMultiTermQuery.CellComparator} that computes morton hash
* ranges based on the defined edges of the provided polygon. * ranges based on the defined edges of the provided polygon.
*/ */
private final class GeoPolygonCellComparator extends CellComparator { private final class GeoPolygonCellComparator extends CellComparator {
@ -72,7 +72,7 @@ final class GeoPointInPolygonQueryImpl extends GeoPointInBBoxQueryImpl {
/** /**
* The two-phase query approach. The parent * The two-phase query approach. The parent
* {@link org.apache.lucene.spatial.search.GeoPointTermsEnum#accept} method is called to match * {@link org.apache.lucene.spatial.geopoint.search.GeoPointTermsEnum#accept} method is called to match
* encoded terms that fall within the bounding box of the polygon. Those documents that pass the initial * encoded terms that fall within the bounding box of the polygon. Those documents that pass the initial
* bounding box filter are then compared to the provided polygon using the * bounding box filter are then compared to the provided polygon using the
* {@link org.apache.lucene.spatial.util.GeoRelationUtils#pointInPolygon} method. * {@link org.apache.lucene.spatial.util.GeoRelationUtils#pointInPolygon} method.

View File

@ -1,4 +1,4 @@
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
/* /*
* Licensed to the Apache Software Foundation (ASF) under one or more * Licensed to the Apache Software Foundation (ASF) under one or more
@ -25,8 +25,8 @@ import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.search.MultiTermQuery; import org.apache.lucene.search.MultiTermQuery;
import org.apache.lucene.search.Query; import org.apache.lucene.search.Query;
import org.apache.lucene.util.AttributeSource; import org.apache.lucene.util.AttributeSource;
import org.apache.lucene.spatial.document.GeoPointField; import org.apache.lucene.spatial.geopoint.document.GeoPointField;
import org.apache.lucene.spatial.document.GeoPointField.TermEncoding; import org.apache.lucene.spatial.geopoint.document.GeoPointField.TermEncoding;
import org.apache.lucene.spatial.util.GeoEncodingUtils; import org.apache.lucene.spatial.util.GeoEncodingUtils;
import org.apache.lucene.spatial.util.GeoRelationUtils; import org.apache.lucene.spatial.util.GeoRelationUtils;
import org.apache.lucene.spatial.util.GeoUtils; import org.apache.lucene.spatial.util.GeoUtils;

View File

@ -1,4 +1,4 @@
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
/* /*
* Licensed to the Apache Software Foundation (ASF) under one or more * Licensed to the Apache Software Foundation (ASF) under one or more
@ -22,7 +22,7 @@ import java.util.LinkedList;
import java.util.List; import java.util.List;
import org.apache.lucene.index.TermsEnum; import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.spatial.document.GeoPointField; import org.apache.lucene.spatial.geopoint.document.GeoPointField;
import org.apache.lucene.spatial.util.GeoEncodingUtils; import org.apache.lucene.spatial.util.GeoEncodingUtils;
import org.apache.lucene.util.BytesRef; import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefBuilder; import org.apache.lucene.util.BytesRefBuilder;
@ -30,7 +30,7 @@ import org.apache.lucene.util.LegacyNumericUtils;
/** /**
* Decomposes a given {@link GeoPointMultiTermQuery} into a set of terms that represent the query criteria using * Decomposes a given {@link GeoPointMultiTermQuery} into a set of terms that represent the query criteria using
* {@link org.apache.lucene.spatial.document.GeoPointField.TermEncoding#NUMERIC} method defined by * {@link org.apache.lucene.spatial.geopoint.document.GeoPointField.TermEncoding#NUMERIC} method defined by
* {@link org.apache.lucene.analysis.LegacyNumericTokenStream}. The terms are then enumerated by the * {@link org.apache.lucene.analysis.LegacyNumericTokenStream}. The terms are then enumerated by the
* {@link GeoPointTermQueryConstantScoreWrapper} and all docs whose GeoPoint fields match the prefix terms or * {@link GeoPointTermQueryConstantScoreWrapper} and all docs whose GeoPoint fields match the prefix terms or
* pass the {@link GeoPointMultiTermQuery.CellComparator#postFilter} criteria are returned in the resulting DocIdSet. * pass the {@link GeoPointMultiTermQuery.CellComparator#postFilter} criteria are returned in the resulting DocIdSet.

View File

@ -1,4 +1,4 @@
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
/* /*
* Licensed to the Apache Software Foundation (ASF) under one or more * Licensed to the Apache Software Foundation (ASF) under one or more
@ -20,7 +20,7 @@ package org.apache.lucene.spatial.search;
import org.apache.lucene.index.TermsEnum; import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.util.BytesRef; import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefBuilder; import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.spatial.document.GeoPointField; import org.apache.lucene.spatial.geopoint.document.GeoPointField;
import org.apache.lucene.spatial.util.GeoEncodingUtils; import org.apache.lucene.spatial.util.GeoEncodingUtils;
import static org.apache.lucene.spatial.util.GeoEncodingUtils.mortonHash; import static org.apache.lucene.spatial.util.GeoEncodingUtils.mortonHash;
@ -32,7 +32,7 @@ import static org.apache.lucene.spatial.util.GeoEncodingUtils.getPrefixCodedShif
/** /**
* Decomposes a given {@link GeoPointMultiTermQuery} into a set of terms that represent the query criteria using * Decomposes a given {@link GeoPointMultiTermQuery} into a set of terms that represent the query criteria using
* {@link org.apache.lucene.spatial.document.GeoPointField.TermEncoding#PREFIX} method defined by * {@link org.apache.lucene.spatial.geopoint.document.GeoPointField.TermEncoding#PREFIX} method defined by
* {@link GeoPointField}. The terms are then enumerated by the * {@link GeoPointField}. The terms are then enumerated by the
* {@link GeoPointTermQueryConstantScoreWrapper} and all docs whose GeoPoint fields match the prefix terms or pass * {@link GeoPointTermQueryConstantScoreWrapper} and all docs whose GeoPoint fields match the prefix terms or pass
* the {@link GeoPointMultiTermQuery.CellComparator#postFilter} criteria are returned in the * the {@link GeoPointMultiTermQuery.CellComparator#postFilter} criteria are returned in the

View File

@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
import java.io.IOException; import java.io.IOException;

View File

@ -14,14 +14,14 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
import org.apache.lucene.index.FilteredTermsEnum; import org.apache.lucene.index.FilteredTermsEnum;
import org.apache.lucene.index.TermsEnum; import org.apache.lucene.index.TermsEnum;
import org.apache.lucene.util.BytesRef; import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefBuilder; import org.apache.lucene.util.BytesRefBuilder;
import org.apache.lucene.spatial.document.GeoPointField.TermEncoding; import org.apache.lucene.spatial.geopoint.document.GeoPointField.TermEncoding;
import org.apache.lucene.spatial.search.GeoPointMultiTermQuery.CellComparator; import org.apache.lucene.spatial.geopoint.search.GeoPointMultiTermQuery.CellComparator;
/** /**
* Base class for {@link GeoPointNumericTermsEnum} and {@link GeoPointPrefixTermsEnum} which compares * Base class for {@link GeoPointNumericTermsEnum} and {@link GeoPointPrefixTermsEnum} which compares

View File

@ -18,4 +18,4 @@
/** /**
* Geospatial Query Implementations for Core Lucene * Geospatial Query Implementations for Core Lucene
*/ */
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;

View File

@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.apache.lucene.spatial.search; package org.apache.lucene.spatial.geopoint.search;
import org.apache.lucene.analysis.MockAnalyzer; import org.apache.lucene.analysis.MockAnalyzer;
import org.apache.lucene.document.Document; import org.apache.lucene.document.Document;
@ -28,8 +28,8 @@ import org.apache.lucene.search.Query;
import org.apache.lucene.search.TopDocs; import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory; import org.apache.lucene.store.Directory;
import org.apache.lucene.spatial.util.GeoEncodingUtils; import org.apache.lucene.spatial.util.GeoEncodingUtils;
import org.apache.lucene.spatial.document.GeoPointField; import org.apache.lucene.spatial.geopoint.document.GeoPointField;
import org.apache.lucene.spatial.document.GeoPointField.TermEncoding; import org.apache.lucene.spatial.geopoint.document.GeoPointField.TermEncoding;
import org.apache.lucene.spatial.util.BaseGeoPointTestCase; import org.apache.lucene.spatial.util.BaseGeoPointTestCase;
import org.apache.lucene.spatial.util.GeoRect; import org.apache.lucene.spatial.util.GeoRect;
import org.apache.lucene.spatial.util.GeoRelationUtils; import org.apache.lucene.spatial.util.GeoRelationUtils;

View File

@ -44,7 +44,6 @@ import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query; import org.apache.lucene.search.Query;
import org.apache.lucene.search.SimpleCollector; import org.apache.lucene.search.SimpleCollector;
import org.apache.lucene.store.Directory; import org.apache.lucene.store.Directory;
import org.apache.lucene.store.MockDirectoryWrapper;
import org.apache.lucene.util.FixedBitSet; import org.apache.lucene.util.FixedBitSet;
import org.apache.lucene.util.IOUtils; import org.apache.lucene.util.IOUtils;
import org.apache.lucene.util.LuceneTestCase; import org.apache.lucene.util.LuceneTestCase;