Example usage for org.apache.lucene.document StoredField StoredField

List of usage examples for org.apache.lucene.document StoredField StoredField

Introduction

In this page you can find the example usage for org.apache.lucene.document StoredField StoredField.

Prototype

public StoredField(String name, double value) 

Source Link

Document

Create a stored-only field with the given double value.

Usage

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());
}