List of usage examples for org.apache.lucene.document StoredField StoredField
public StoredField(String name, double value)
From source file:org.hibernate.search.backend.lucene.types.codec.impl.GeoPointFieldCodec.java
License:LGPL
@Override public void encode(LuceneDocumentBuilder documentBuilder, String absoluteFieldPath, GeoPoint value) { if (value == null) { return;/*from ww w .jav a 2 s .co m*/ } if (Store.YES.equals(store)) { documentBuilder.addField(new StoredField(latitudeAbsoluteFieldPath, value.getLatitude())); documentBuilder.addField(new StoredField(longitudeAbsoluteFieldPath, value.getLongitude())); } if (Sortable.YES.equals(sortable)) { documentBuilder.addField( new LatLonDocValuesField(absoluteFieldPath, value.getLatitude(), value.getLongitude())); } documentBuilder.addField(new LatLonPoint(absoluteFieldPath, value.getLatitude(), value.getLongitude())); }
From source file:org.hibernate.search.backend.lucene.types.codec.impl.IntegerFieldCodec.java
License:LGPL
@Override public void encode(LuceneDocumentBuilder documentBuilder, String absoluteFieldPath, Integer value) { if (value == null) { return;/*from w w w .jav a2 s . c o m*/ } if (Store.YES.equals(store)) { documentBuilder.addField(new StoredField(absoluteFieldPath, value)); } if (Sortable.YES.equals(sortable)) { documentBuilder.addField(new NumericDocValuesField(absoluteFieldPath, value.longValue())); } documentBuilder.addField(new IntPoint(absoluteFieldPath, value)); }
From source file:org.hibernate.search.backend.lucene.types.codec.impl.LocalDateFieldCodec.java
License:LGPL
@Override public void encode(LuceneDocumentBuilder documentBuilder, String absoluteFieldPath, LocalDate value) { if (value == null) { return;/*ww w. j a v a2 s .c om*/ } if (Store.YES.equals(store)) { documentBuilder.addField(new StoredField(absoluteFieldPath, FORMATTER.format(value))); } long valueToEpochDay = value.toEpochDay(); if (Sortable.YES.equals(sortable)) { documentBuilder.addField(new NumericDocValuesField(absoluteFieldPath, valueToEpochDay)); } documentBuilder.addField(new LongPoint(absoluteFieldPath, valueToEpochDay)); }
From source file:org.janusgraph.diskstorage.lucene.LuceneIndex.java
License:Apache License
private void addToDocument(String store, String docID, Document doc, List<IndexEntry> content, Map<String, Shape> geoFields, KeyInformation.IndexRetriever information) { Preconditions.checkNotNull(doc);//from ww w . ja v a2 s . c o m for (final IndexEntry e : content) { Preconditions.checkArgument(!e.hasMetaData(), "Lucene index does not support indexing meta data: %s", e); if (log.isTraceEnabled()) log.trace("Adding field [{}] on document [{}]", e.field, docID); if (doc.getField(e.field) != null) doc.removeFields(e.field); if (e.value instanceof Number) { final Field field; final Field sortField; if (AttributeUtil.isWholeNumber((Number) e.value)) { field = new LongPoint(e.field, ((Number) e.value).longValue()); sortField = new NumericDocValuesField(e.field, ((Number) e.value).longValue()); } else { //double or float field = new DoublePoint(e.field, ((Number) e.value).doubleValue()); sortField = new DoubleDocValuesField(e.field, ((Number) e.value).doubleValue()); } doc.add(field); doc.add(sortField); } else if (AttributeUtil.isString(e.value)) { final String str = (String) e.value; final Mapping mapping = Mapping.getMapping(store, e.field, information); final Field field; final Field sortField; switch (mapping) { case DEFAULT: case TEXT: // lowering the case for case insensitive text search field = new TextField(e.field, str.toLowerCase(), Field.Store.YES); sortField = null; break; case STRING: // if this field uses a custom analyzer, it must be stored as a TextField // (or the analyzer, even if it is a KeywordAnalyzer won't be used) field = new TextField(e.field, str, Field.Store.YES); sortField = new SortedDocValuesField(e.field, new BytesRef(str)); break; default: throw new IllegalArgumentException("Illegal mapping specified: " + mapping); } doc.add(field); if (sortField != null) { doc.add(sortField); } } else if (e.value instanceof Geoshape) { final Shape shape = ((Geoshape) e.value).getShape(); geoFields.put(e.field, shape); doc.add(new StoredField(e.field, GEOID + e.value.toString())); } else if (e.value instanceof Date) { doc.add(new LongPoint(e.field, (((Date) e.value).getTime()))); doc.add(new NumericDocValuesField(e.field, (((Date) e.value).getTime()))); } else if (e.value instanceof Instant) { doc.add(new LongPoint(e.field, (((Instant) e.value).toEpochMilli()))); doc.add(new NumericDocValuesField(e.field, (((Instant) e.value).toEpochMilli()))); } else if (e.value instanceof Boolean) { doc.add(new IntPoint(e.field, ((Boolean) e.value) ? 1 : 0)); } else if (e.value instanceof UUID) { //Solr stores UUIDs as strings, we we do the same. final Field field = new StringField(e.field, e.value.toString(), Field.Store.YES); doc.add(field); } else { throw new IllegalArgumentException("Unsupported type: " + e.value); } } for (final Map.Entry<String, Shape> geo : geoFields.entrySet()) { if (log.isTraceEnabled()) log.trace("Updating geo-indexes for key {}", geo.getKey()); final KeyInformation ki = information.get(store, geo.getKey()); final SpatialStrategy spatialStrategy = getSpatialStrategy(geo.getKey(), ki); for (final IndexableField f : spatialStrategy.createIndexableFields(geo.getValue())) { if (doc.getField(f.name()) != null) { doc.removeFields(f.name()); } doc.add(f); if (spatialStrategy instanceof PointVectorStrategy) { doc.add(new DoubleDocValuesField(f.name(), f.numericValue() == null ? null : f.numericValue().doubleValue())); } } } }
From source file:org.kie.kieora.backend.lucene.fields.SimpleFieldFactory.java
License:Apache License
@Override public IndexableField[] build(final KProperty<?> property) { if (Enum.class.isAssignableFrom(property.getValue().getClass())) { if (property.isSearchable()) { return new IndexableField[] { new TextField(property.getName(), property.getValue().toString().toLowerCase(), Field.Store.YES) }; }//from ww w . j a v a 2s.c o m return new IndexableField[] { new StringField(property.getName(), property.getValue().toString().toLowerCase(), Field.Store.YES) }; } if (property.getValue().getClass() == String.class) { if (property.isSearchable()) { return new IndexableField[] { new TextField(property.getName(), property.getValue().toString(), Field.Store.YES) }; } return new IndexableField[] { new StringField(property.getName(), property.getValue().toString(), Field.Store.YES) }; } if (property.getValue().getClass() == Boolean.class) { if (property.isSearchable()) { return new IndexableField[] { new TextField(property.getName(), ((Boolean) property.getValue()) ? "0" : "1", Field.Store.YES) }; } return new IndexableField[] { new StringField(property.getName(), ((Boolean) property.getValue()) ? "0" : "1", Field.Store.YES) }; } if (property.getValue().getClass() == Integer.class) { if (property.isSearchable()) { return new IndexableField[] { new IntField(property.getName(), (Integer) property.getValue(), Field.Store.YES) }; } return new IndexableField[] { new StoredField(property.getName(), (Integer) property.getValue()) }; } if (property.getValue().getClass() == Long.class) { if (property.isSearchable()) { return new IndexableField[] { new LongField(property.getName(), (Long) property.getValue(), Field.Store.YES) }; } return new IndexableField[] { new StoredField(property.getName(), (Long) property.getValue()) }; } if (property.getValue().getClass() == Double.class) { if (property.isSearchable()) { return new IndexableField[] { new DoubleField(property.getName(), (Double) property.getValue(), Field.Store.YES) }; } return new IndexableField[] { new StoredField(property.getName(), (Double) property.getValue()) }; } if (property.getValue().getClass() == Float.class) { if (property.isSearchable()) { return new IndexableField[] { new FloatField(property.getName(), (Float) property.getValue(), Field.Store.YES) }; } return new IndexableField[] { new StoredField(property.getName(), (Float) property.getValue()) }; } if (FileTime.class.isAssignableFrom(property.getValue().getClass())) { if (property.isSearchable()) { return new IndexableField[] { new LongField(property.getName(), ((FileTime) property.getValue()).toMillis(), Field.Store.YES) }; } return new IndexableField[] { new StoredField(property.getName(), ((FileTime) property.getValue()).toMillis()) }; } if (Date.class.isAssignableFrom(property.getValue().getClass())) { if (property.isSearchable()) { return new IndexableField[] { new LongField(property.getName(), ((Date) property.getValue()).getTime(), Field.Store.YES) }; } return new IndexableField[] { new StoredField(property.getName(), ((Date) property.getValue()).getTime()) }; } if (VersionHistory.class.isAssignableFrom(property.getValue().getClass())) { final VersionHistory versionHistory = (VersionHistory) property.getValue(); return build(versionHistory); } if (Collection.class.isAssignableFrom(property.getValue().getClass())) { final StringBuilder sb = new StringBuilder(); for (final java.lang.Object ovalue : (Collection) property.getValue()) { sb.append(ovalue).append(' '); } if (property.isSearchable()) { return new IndexableField[] { new TextField(property.getName(), sb.toString(), Field.Store.YES) }; } return new IndexableField[] { new StringField(property.getName(), sb.toString(), Field.Store.YES) }; } try { return new IndexableField[] { new StoredField(property.getName(), toByteArray(property.getValue())) }; } catch (final Exception ex) { return new IndexableField[] { new StoredField(property.getName(), property.getValue().toString()) }; } }
From source file:org.neo4j.index.impl.lucene.legacy.FullTxData.java
License:Open Source License
@Override void add(TxDataHolder holder, EntityId entityId, String key, Object value) { try {/*from w w w.j ava 2 s . c o m*/ ensureLuceneDataInstantiated(); long id = entityId.id(); Document document = findDocument(id); boolean add = false; if (document == null) { document = IndexType.newDocument(entityId); document.add(new StoredField(TX_STATE_KEY, TX_STATE_VALUE)); cachedDocuments.put(id, document); add = true; } if (key == null && value == null) { // Set a special "always hit" flag document.add(new StringField(ORPHANS_KEY, ORPHANS_VALUE, Store.NO)); addOrphan(null); } else if (value == null) { // Set a special "always hit" flag document.add(new StringField(ORPHANS_KEY, key, Store.NO)); addOrphan(key); } else { index.type.addToDocument(document, key, value); } if (add) { writer.addDocument(document); } else { writer.updateDocument(index.type.idTerm(id), document); } invalidateSearcher(); } catch (IOException e) { throw new RuntimeException(e); } }
From source file:org.opencms.search.CmsLuceneDocument.java
License:Open Source License
/** * @see org.opencms.search.I_CmsSearchDocument#addContentField(byte[]) *///w w w .j av a2s . c o m public void addContentField(byte[] data) { Field field = new StoredField(CmsSearchField.FIELD_CONTENT_BLOB, data); m_doc.add(field); }
From source file:org.openedit.data.lucene.SearchResultStoredFieldVisitor.java
License:Apache License
@Override public void binaryField(FieldInfo fieldInfo, byte[] value) throws IOException { if (value.length > 0) { StoredField stored = new StoredField(fieldInfo.name, value); putValue(fieldInfo.name, stored.stringValue()); }//from w w w . ja va2 s. c om }
From source file:org.openedit.data.lucene.SearchResultStoredFieldVisitor.java
License:Apache License
@Override public void intField(FieldInfo fieldInfo, int value) { StoredField stored = new StoredField(fieldInfo.name, value); putValue(fieldInfo.name, stored.stringValue()); }
From source file:org.openedit.data.lucene.SearchResultStoredFieldVisitor.java
License:Apache License
@Override public void longField(FieldInfo fieldInfo, long value) { StoredField stored = new StoredField(fieldInfo.name, value); putValue(fieldInfo.name, stored.stringValue()); }