Example usage for org.apache.solr.util NumberUtils double2sortableStr

List of usage examples for org.apache.solr.util NumberUtils double2sortableStr

Introduction

In this page you can find the example usage for org.apache.solr.util NumberUtils double2sortableStr.

Prototype

public static String double2sortableStr(String val) 

Source Link

Usage

From source file:com.pjaol.search.geo.utils.CartesianPolyFilter.java

License:Apache License

public RangeFilter boundaryBox(double latitude, double longitude, int miles) {

    Rectangle2D box = DistanceUtils.getBoundary(latitude, longitude, miles);

    double latX = box.getY();
    double latY = box.getMaxY();

    double longX = box.getX();
    double longY = box.getMaxX();

    CartesianTierPlotter ctp = new CartesianTierPlotter(2, projector);
    int bestFit = ctp.bestFit(miles);

    log.fine("Best Fit is : " + bestFit);
    ctp = new CartesianTierPlotter(bestFit, projector);

    double beginAt = ctp.getTierBoxId(latX, longX);
    double endAt = ctp.getTierBoxId(latY, longY);
    String fieldName = ctp.getTierFieldName();

    log.fine("RangeFilter is (" + latX + "," + longX + ") " + "(" + latY + "," + longY + ") " + fieldName + ":["
            + beginAt + " TO " + endAt + "]");

    RangeFilter f = new RangeFilter(fieldName, NumberUtils.double2sortableStr(beginAt),
            NumberUtils.double2sortableStr(endAt), true, true);

    return f;/*from w  ww.  j  a  v  a  2  s . c o m*/

}

From source file:com.pjaol.search.geo.utils.DistanceQuery.java

License:Apache License

/**
 * Create a distance level1query using// w  w w .jav  a  2  s  .c  o  m
 * a boundary box wrapper around a more precise
 * DistanceFilter.
 * 
 * @see SerialChainFilter
 * @param lat
 * @param lng
 * @param miles
 */
public DistanceQuery(double lat, double lng, double miles, String latField, String lngField,
        boolean useCartesian) {

    this.lat = lat;
    this.lng = lng;
    this.miles = miles;
    this.latField = latField;
    this.lngField = lngField;
    this.useCartesian = useCartesian;

    /* create boundary box filter */
    Rectangle2D box = DistanceUtils.getBoundary(lat, lng, miles);

    if (!useCartesian) {
        latFilter = new BoundaryBoxFilter(latField, NumberUtils.double2sortableStr(box.getY()),
                NumberUtils.double2sortableStr(box.getMaxY()), true, true);
        lngFilter = new BoundaryBoxFilter(lngField, NumberUtils.double2sortableStr(box.getX()),
                NumberUtils.double2sortableStr(box.getMaxX()), true, true);
    } else {
        CartesianPolyFilter cpf = new CartesianPolyFilter();
        cartesianFilter = cpf.getBoundingArea(lat, lng, (int) miles);
    }
    /* create precise distance filter */
    distanceFilter = new DistanceFilter(lat, lng, miles, latField, lngField);

}

From source file:com.pjaol.search.test.UnitTests.TestCartesian.java

License:Apache License

private void addPoint(IndexWriter writer, String name, double lat, double lng) throws IOException {

    Document doc = new Document();

    doc.add(new Field("name", name, Field.Store.YES, Field.Index.TOKENIZED));

    // convert the lat / long to lucene fields
    doc.add(new Field(latField, NumberUtils.double2sortableStr(lat), Field.Store.YES,
            Field.Index.UN_TOKENIZED));
    doc.add(new Field(lngField, NumberUtils.double2sortableStr(lng), Field.Store.YES,
            Field.Index.UN_TOKENIZED));

    // add a default meta field to make searching all documents easy 
    doc.add(new Field("metafile", "doc", Field.Store.YES, Field.Index.TOKENIZED));

    int ctpsize = ctps.size();
    for (int i = 0; i < ctpsize; i++) {
        CartesianTierPlotter ctp = ctps.get(i);
        doc.add(new Field(ctp.getTierFieldName(), NumberUtils.double2sortableStr(ctp.getTierBoxId(lat, lng)),
                Field.Store.YES, Field.Index.NO_NORMS));
    }//from   w  ww .  j a  v  a  2  s.  co m
    writer.addDocument(doc);

}

From source file:com.pjaol.search.test.UnitTests.TestDistance.java

License:Apache License

private void addPoint(IndexWriter writer, String name, double lat, double lng) throws IOException {

    Document doc = new Document();

    doc.add(new Field("name", name, Field.Store.YES, Field.Index.TOKENIZED));

    // convert the lat / long to lucene fields
    doc.add(new Field(latField, NumberUtils.double2sortableStr(lat), Field.Store.YES,
            Field.Index.UN_TOKENIZED));
    doc.add(new Field(lngField, NumberUtils.double2sortableStr(lng), Field.Store.YES,
            Field.Index.UN_TOKENIZED));

    // add a default meta field to make searching all documents easy 
    doc.add(new Field("metafile", "doc", Field.Store.YES, Field.Index.TOKENIZED));
    writer.addDocument(doc);/*from  w w  w  .java2  s  .  com*/

}