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

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

Introduction

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

Prototype

public InetAddressPoint(String name, InetAddress point) 

Source Link

Document

Creates a new InetAddressPoint, indexing the provided address.

Usage

From source file:org.elasticsearch.index.mapper.IpFieldMapper.java

License:Apache License

@Override
protected void parseCreateField(ParseContext context, List<Field> fields) throws IOException {
    Object addressAsObject;/*  ww  w.  ja  v  a2s  .c om*/
    if (context.externalValueSet()) {
        addressAsObject = context.externalValue();
    } else {
        addressAsObject = context.parser().textOrNull();
    }

    if (addressAsObject == null) {
        addressAsObject = fieldType().nullValue();
    }

    if (addressAsObject == null) {
        return;
    }

    String addressAsString = addressAsObject.toString();
    InetAddress address;
    if (addressAsObject instanceof InetAddress) {
        address = (InetAddress) addressAsObject;
    } else {
        try {
            address = InetAddresses.forString(addressAsString);
        } catch (IllegalArgumentException e) {
            if (ignoreMalformed.value()) {
                return;
            } else {
                throw e;
            }
        }
    }

    if (context.includeInAll(includeInAll, this)) {
        context.allEntries().addText(fieldType().name(), addressAsString, fieldType().boost());
    }

    if (fieldType().indexOptions() != IndexOptions.NONE) {
        fields.add(new InetAddressPoint(fieldType().name(), address));
    }
    if (fieldType().hasDocValues()) {
        fields.add(new SortedSetDocValuesField(fieldType().name(),
                new BytesRef(InetAddressPoint.encode(address))));
    }
    if (fieldType().stored()) {
        fields.add(new StoredField(fieldType().name(), new BytesRef(InetAddressPoint.encode(address))));
    }
}