List of usage examples for org.apache.lucene.document FloatPoint FloatPoint
public FloatPoint(String name, float... point)
From source file:com.b2international.index.lucene.FloatIndexField.java
License:Apache License
@Override protected IndexableField toField(Float value) { return new FloatPoint(fieldName(), value); }
From source file:com.semantic.lucene.fields.image.AspectRatioField.java
@Override public void add(Document doc, Float value) { doc.add(new FloatPoint(getName(), value)); doc.add(new StoredField(getName(), value)); }
From source file:org.apache.carbondata.datamap.lucene.LuceneDataMapWriter.java
License:Apache License
private static void addField(Document doc, Object key, String fieldName, Field.Store store) { //get field name if (key instanceof Byte) { // byte type , use int range to deal with byte, lucene has no byte type byte value = (Byte) key; IntRangeField field = new IntRangeField(fieldName, new int[] { Byte.MIN_VALUE }, new int[] { Byte.MAX_VALUE }); field.setIntValue(value);//from w w w . j ava 2s. c om doc.add(field); // if need store it , add StoredField if (store == Field.Store.YES) { doc.add(new StoredField(fieldName, (int) value)); } } else if (key instanceof Short) { // short type , use int range to deal with short type, lucene has no short type short value = (Short) key; IntRangeField field = new IntRangeField(fieldName, new int[] { Short.MIN_VALUE }, new int[] { Short.MAX_VALUE }); field.setShortValue(value); doc.add(field); // if need store it , add StoredField if (store == Field.Store.YES) { doc.add(new StoredField(fieldName, (int) value)); } } else if (key instanceof Integer) { // int type , use int point to deal with int type int value = (Integer) key; doc.add(new IntPoint(fieldName, new int[] { value })); // if need store it , add StoredField if (store == Field.Store.YES) { doc.add(new StoredField(fieldName, value)); } } else if (key instanceof Long) { // long type , use long point to deal with long type long value = (Long) key; doc.add(new LongPoint(fieldName, new long[] { value })); // if need store it , add StoredField if (store == Field.Store.YES) { doc.add(new StoredField(fieldName, value)); } } else if (key instanceof Float) { float value = (Float) key; doc.add(new FloatPoint(fieldName, new float[] { value })); if (store == Field.Store.YES) { doc.add(new FloatPoint(fieldName, value)); } } else if (key instanceof Double) { double value = (Double) key; doc.add(new DoublePoint(fieldName, new double[] { value })); if (store == Field.Store.YES) { doc.add(new DoublePoint(fieldName, value)); } } else if (key instanceof String) { String strValue = (String) key; doc.add(new TextField(fieldName, strValue, store)); } else if (key instanceof Boolean) { boolean value = (Boolean) key; IntRangeField field = new IntRangeField(fieldName, new int[] { 0 }, new int[] { 1 }); field.setIntValue(value ? 1 : 0); doc.add(field); if (store == Field.Store.YES) { doc.add(new StoredField(fieldName, value ? 1 : 0)); } } }
From source file:org.apache.geode.cache.lucene.internal.repository.serializer.SerializerUtil.java
License:Apache License
/** * Add a field to the document.//ww w. j ava 2 s . c o m * * @return true if the field was successfully added */ public static boolean addField(Document doc, String field, Object fieldValue) { Class<?> clazz = fieldValue.getClass(); if (clazz == String.class) { doc.add(new TextField(field, (String) fieldValue, Store.NO)); } else if (clazz == Long.class) { doc.add(new LongPoint(field, (Long) fieldValue)); } else if (clazz == Integer.class) { doc.add(new IntPoint(field, (Integer) fieldValue)); } else if (clazz == Float.class) { doc.add(new FloatPoint(field, (Float) fieldValue)); } else if (clazz == Double.class) { doc.add(new DoublePoint(field, (Double) fieldValue)); } else { return false; } return true; }
From source file:org.apache.solr.schema.FloatPointField.java
License:Apache License
@Override public IndexableField createField(SchemaField field, Object value, float boost) { if (!isFieldUsed(field)) return null; if (boost != 1.0 && log.isTraceEnabled()) { log.trace("Can't use document/field boost for PointField. Field: " + field.getName() + ", boost: " + boost);/*from w ww .j a va 2s . c o m*/ } float floatValue = (value instanceof Number) ? ((Number) value).floatValue() : Float.parseFloat(value.toString()); return new FloatPoint(field.getName(), floatValue); }
From source file:org.apache.solr.uninverting.TestFieldCache.java
License:Apache License
@BeforeClass public static void beforeClass() throws Exception { NUM_DOCS = atLeast(500);//from w w w . j a va 2 s . co m NUM_ORDS = atLeast(2); directory = newDirectory(); IndexWriter writer = new IndexWriter(directory, new IndexWriterConfig(new MockAnalyzer(random())).setMergePolicy(new LogDocMergePolicy())); long theLong = Long.MAX_VALUE; double theDouble = Double.MAX_VALUE; int theInt = Integer.MAX_VALUE; float theFloat = Float.MAX_VALUE; unicodeStrings = new String[NUM_DOCS]; multiValued = new BytesRef[NUM_DOCS][NUM_ORDS]; if (VERBOSE) { System.out.println("TEST: setUp"); } for (int i = 0; i < NUM_DOCS; i++) { Document doc = new Document(); doc.add(new LongPoint("theLong", theLong--)); doc.add(new DoublePoint("theDouble", theDouble--)); doc.add(new IntPoint("theInt", theInt--)); doc.add(new FloatPoint("theFloat", theFloat--)); if (i % 2 == 0) { doc.add(new IntPoint("sparse", i)); } if (i % 2 == 0) { doc.add(new IntPoint("numInt", i)); } // sometimes skip the field: if (random().nextInt(40) != 17) { unicodeStrings[i] = generateString(i); doc.add(newStringField("theRandomUnicodeString", unicodeStrings[i], Field.Store.YES)); } // sometimes skip the field: if (random().nextInt(10) != 8) { for (int j = 0; j < NUM_ORDS; j++) { String newValue = generateString(i); multiValued[i][j] = new BytesRef(newValue); doc.add(newStringField("theRandomUnicodeMultiValuedField", newValue, Field.Store.YES)); } Arrays.sort(multiValued[i]); } writer.addDocument(doc); } writer.forceMerge(1); // this test relies on one segment and docid order IndexReader r = DirectoryReader.open(writer); assertEquals(1, r.leaves().size()); reader = r.leaves().get(0).reader(); TestUtil.checkReader(reader); writer.close(); }
From source file:org.apache.solr.uninverting.TestFieldCacheSort.java
License:Apache License
/** Tests sorting on type float */ public void testFloat() throws IOException { Directory dir = newDirectory();/* w ww.jav a 2 s. com*/ RandomIndexWriter writer = new RandomIndexWriter(random(), dir); Document doc = new Document(); doc.add(new FloatPoint("value", 30.1f)); doc.add(new StoredField("value", 30.1f)); writer.addDocument(doc); doc = new Document(); doc.add(new FloatPoint("value", -1.3f)); doc.add(new StoredField("value", -1.3f)); writer.addDocument(doc); doc = new Document(); doc.add(new FloatPoint("value", 4.2f)); doc.add(new StoredField("value", 4.2f)); writer.addDocument(doc); IndexReader ir = UninvertingReader.wrap(writer.getReader(), Collections.singletonMap("value", Type.FLOAT_POINT)); writer.close(); IndexSearcher searcher = newSearcher(ir, false); Sort sort = new Sort(new SortField("value", SortField.Type.FLOAT)); TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort); assertEquals(3, td.totalHits); // numeric order assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).get("value")); assertEquals("4.2", searcher.doc(td.scoreDocs[1].doc).get("value")); assertEquals("30.1", searcher.doc(td.scoreDocs[2].doc).get("value")); TestUtil.checkReader(ir); ir.close(); dir.close(); }
From source file:org.apache.solr.uninverting.TestFieldCacheSort.java
License:Apache License
/** Tests sorting on type float with a missing value */ public void testFloatMissing() throws IOException { Directory dir = newDirectory();/*from w w w . j av a 2s . c o m*/ RandomIndexWriter writer = new RandomIndexWriter(random(), dir); Document doc = new Document(); writer.addDocument(doc); doc = new Document(); doc.add(new FloatPoint("value", -1.3f)); doc.add(new StoredField("value", -1.3f)); writer.addDocument(doc); doc = new Document(); doc.add(new FloatPoint("value", 4.2f)); doc.add(new StoredField("value", 4.2f)); writer.addDocument(doc); IndexReader ir = UninvertingReader.wrap(writer.getReader(), Collections.singletonMap("value", Type.FLOAT_POINT)); writer.close(); IndexSearcher searcher = newSearcher(ir, false); Sort sort = new Sort(new SortField("value", SortField.Type.FLOAT)); TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort); assertEquals(3, td.totalHits); // null is treated as 0 assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).get("value")); assertNull(searcher.doc(td.scoreDocs[1].doc).get("value")); assertEquals("4.2", searcher.doc(td.scoreDocs[2].doc).get("value")); TestUtil.checkReader(ir); ir.close(); dir.close(); }
From source file:org.apache.solr.uninverting.TestFieldCacheSort.java
License:Apache License
/** Tests sorting on type float, specifying the missing value should be treated as Float.MAX_VALUE */ public void testFloatMissingLast() throws IOException { Directory dir = newDirectory();/* ww w .j a va 2s. c o m*/ RandomIndexWriter writer = new RandomIndexWriter(random(), dir); Document doc = new Document(); writer.addDocument(doc); doc = new Document(); doc.add(new FloatPoint("value", -1.3f)); doc.add(new StoredField("value", -1.3f)); writer.addDocument(doc); doc = new Document(); doc.add(new FloatPoint("value", 4.2f)); doc.add(new StoredField("value", 4.2f)); writer.addDocument(doc); IndexReader ir = UninvertingReader.wrap(writer.getReader(), Collections.singletonMap("value", Type.FLOAT_POINT)); writer.close(); IndexSearcher searcher = newSearcher(ir, false); SortField sortField = new SortField("value", SortField.Type.FLOAT); sortField.setMissingValue(Float.MAX_VALUE); Sort sort = new Sort(sortField); TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort); assertEquals(3, td.totalHits); // null is treated as Float.MAX_VALUE assertEquals("-1.3", searcher.doc(td.scoreDocs[0].doc).get("value")); assertEquals("4.2", searcher.doc(td.scoreDocs[1].doc).get("value")); assertNull(searcher.doc(td.scoreDocs[2].doc).get("value")); TestUtil.checkReader(ir); ir.close(); dir.close(); }
From source file:org.apache.solr.uninverting.TestFieldCacheSort.java
License:Apache License
/** Tests sorting on type float in reverse */ public void testFloatReverse() throws IOException { Directory dir = newDirectory();/*from w ww . j a v a 2 s. c o m*/ RandomIndexWriter writer = new RandomIndexWriter(random(), dir); Document doc = new Document(); doc.add(new FloatPoint("value", 30.1f)); doc.add(new StoredField("value", 30.1f)); writer.addDocument(doc); doc = new Document(); doc.add(new FloatPoint("value", -1.3f)); doc.add(new StoredField("value", -1.3f)); writer.addDocument(doc); doc = new Document(); doc.add(new FloatPoint("value", 4.2f)); doc.add(new StoredField("value", 4.2f)); writer.addDocument(doc); IndexReader ir = UninvertingReader.wrap(writer.getReader(), Collections.singletonMap("value", Type.FLOAT_POINT)); writer.close(); IndexSearcher searcher = newSearcher(ir, false); Sort sort = new Sort(new SortField("value", SortField.Type.FLOAT, true)); TopDocs td = searcher.search(new MatchAllDocsQuery(), 10, sort); assertEquals(3, td.totalHits); // reverse numeric order assertEquals("30.1", searcher.doc(td.scoreDocs[0].doc).get("value")); assertEquals("4.2", searcher.doc(td.scoreDocs[1].doc).get("value")); assertEquals("-1.3", searcher.doc(td.scoreDocs[2].doc).get("value")); TestUtil.checkReader(ir); ir.close(); dir.close(); }