pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.4.0 / lucene / contrib / spatial / src / java / org / apache / lucene / spatial / tier / DistanceQueryBuilder.java
diff --git a/lucene-java-3.4.0/lucene/contrib/spatial/src/java/org/apache/lucene/spatial/tier/DistanceQueryBuilder.java b/lucene-java-3.4.0/lucene/contrib/spatial/src/java/org/apache/lucene/spatial/tier/DistanceQueryBuilder.java
deleted file mode 100644 (file)
index ed73936..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/**
- * 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.
- */
-
-package org.apache.lucene.spatial.tier;
-
-import org.apache.lucene.search.ConstantScoreQuery;
-import org.apache.lucene.search.ChainedFilter;
-import org.apache.lucene.search.Filter;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.QueryWrapperFilter;
-import org.apache.lucene.spatial.geohash.GeoHashDistanceFilter;
-
-/**
- * <p><font color="red"><b>NOTE:</b> This API is still in
- * flux and might change in incompatible ways in the next
- * release.</font>
- */
-public class DistanceQueryBuilder {
-
-  private static final long serialVersionUID = 1L;
-  
-  private final double lat;
-  private final double lng;
-  private final double miles;
-  private final Filter filter;
-  final DistanceFilter distanceFilter;
-
-  /**
-   * Create a distance query using
-   * a boundary box wrapper around a more precise
-   * DistanceFilter.
-   * 
-   * @param lat The latitude to search around
-   * @param lng the Longitude to search around
-   * @param miles The radius to search within
-   * @param latField The name of the field containing the latitude
-   * @param lngField The name of the field containing the longitude
-   * @param tierFieldPrefix The prefix of the tier
-   * @param needPrecise if true, then distance is calculated in addition to tier info
-   * @param minTierIndexed The minimum tier level indexed
-   * @param maxTierIndexed The maximum tier level indexed
-   */
-  public DistanceQueryBuilder (double lat, double lng, double miles, 
-      String latField, String lngField, String tierFieldPrefix, boolean needPrecise, int minTierIndexed, int maxTierIndexed) {
-
-    this.lat = lat;
-    this.lng = lng;
-    this.miles = miles;
-    
-    CartesianPolyFilterBuilder cpf = new CartesianPolyFilterBuilder(tierFieldPrefix, minTierIndexed, maxTierIndexed);
-    Filter cartesianFilter = cpf.getBoundingArea(lat, lng, miles);
-
-    /* create precise distance filter */
-    if (needPrecise) {
-      filter = distanceFilter = new LatLongDistanceFilter(cartesianFilter, lat, lng, miles, latField, lngField);
-    } else {
-      filter = cartesianFilter;
-      distanceFilter = null;
-    }
-  }
-
-  /**
-   * Create a distance query using
-   * a boundary box wrapper around a more precise
-   * DistanceFilter.
-   * 
-   * @param lat
-   * @param lng
-   * @param miles
-   */
-  public DistanceQueryBuilder (double lat, double lng, double miles, 
-      String geoHashFieldPrefix, String tierFieldPrefix, boolean needPrecise,  int minTierIndexed, int maxTierIndexed){
-
-    this.lat = lat;
-    this.lng = lng;
-    this.miles = miles;
-    
-    CartesianPolyFilterBuilder cpf = new CartesianPolyFilterBuilder(tierFieldPrefix, minTierIndexed, maxTierIndexed);
-    Filter cartesianFilter = cpf.getBoundingArea(lat, lng, miles);
-
-    /* create precise distance filter */
-    if (needPrecise) {
-      filter = distanceFilter = new GeoHashDistanceFilter(cartesianFilter, lat, lng, miles, geoHashFieldPrefix);
-    } else {
-      filter = cartesianFilter;
-      distanceFilter = null;
-    }
-  }
-
-  
-  /**
-  * Create a distance query using
-  * a boundary box wrapper around a more precise
-  * DistanceFilter.
-  */
-  public Filter getFilter() {
-    if (distanceFilter != null) {
-      distanceFilter.reset();
-    }
-    return filter;
-  }
-  
-  public Filter getFilter(Query query) {
-    // Chain the Query (as filter) with our distance filter
-    if (distanceFilter != null) {
-      distanceFilter.reset();
-    }
-    QueryWrapperFilter qf = new QueryWrapperFilter(query);
-    return new ChainedFilter(new Filter[] {qf, filter},
-                             ChainedFilter.AND);
-  }
-
-  public DistanceFilter getDistanceFilter() {
-    return distanceFilter;
-  }
-    
-  public Query getQuery(Query query){
-    return new ConstantScoreQuery(getFilter(query));
-  }
-  
-  public double getLat() {
-    return lat;
-  }
-
-  public double getLng() {
-    return lng;
-  }
-
-  public double getMiles() {
-    return miles;
-  }
-    
-  @Override
-  public String toString() {
-    return "DistanceQuery lat: " + lat + " lng: " + lng + " miles: "+ miles;
-  }
-}