Example usage for org.apache.lucene.analysis.payloads DelimitedPayloadTokenFilterFactory ENCODER_ATTR

List of usage examples for org.apache.lucene.analysis.payloads DelimitedPayloadTokenFilterFactory ENCODER_ATTR

Introduction

In this page you can find the example usage for org.apache.lucene.analysis.payloads DelimitedPayloadTokenFilterFactory ENCODER_ATTR.

Prototype

String ENCODER_ATTR

To view the source code for org.apache.lucene.analysis.payloads DelimitedPayloadTokenFilterFactory ENCODER_ATTR.

Click Source Link

Usage

From source file:org.apache.solr.util.PayloadUtils.java

License:Apache License

public static String getPayloadEncoder(FieldType fieldType) {
    // TODO: support custom payload encoding fields too somehow - maybe someone has a custom component that encodes payloads as floats
    String encoder = null;//from  www.j a v a 2s  .com
    Analyzer a = fieldType.getIndexAnalyzer();
    if (a instanceof TokenizerChain) {
        // examine the indexing analysis chain for DelimitedPayloadTokenFilterFactory or NumericPayloadTokenFilterFactory
        TokenizerChain tc = (TokenizerChain) a;
        TokenFilterFactory[] factories = tc.getTokenFilterFactories();
        for (TokenFilterFactory factory : factories) {
            if (factory instanceof DelimitedPayloadTokenFilterFactory) {
                encoder = factory.getOriginalArgs().get(DelimitedPayloadTokenFilterFactory.ENCODER_ATTR);
                break;
            }

            if (factory instanceof NumericPayloadTokenFilterFactory) {
                // encodes using `PayloadHelper.encodeFloat(payload)`
                encoder = "float";
                break;
            }
        }
    }

    return encoder;
}