List of usage examples for org.apache.solr.util NumberUtils double2sortableStr
public static String double2sortableStr(String val)
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*/ }