Search in sources :

Example 26 with PayloadAttribute

use of org.apache.lucene.analysis.tokenattributes.PayloadAttribute in project lucene-solr by apache.

the class SimplePreAnalyzedParser method createState.

private static AttributeSource.State createState(AttributeSource a, Tok state, int tokenEnd) {
    a.clearAttributes();
    CharTermAttribute termAtt = a.addAttribute(CharTermAttribute.class);
    char[] tokChars = state.token.toString().toCharArray();
    termAtt.copyBuffer(tokChars, 0, tokChars.length);
    int tokenStart = tokenEnd - state.token.length();
    for (Entry<String, String> e : state.attr.entrySet()) {
        String k = e.getKey();
        if (k.equals("i")) {
            // position increment
            int incr = Integer.parseInt(e.getValue());
            PositionIncrementAttribute posIncr = a.addAttribute(PositionIncrementAttribute.class);
            posIncr.setPositionIncrement(incr);
        } else if (k.equals("s")) {
            tokenStart = Integer.parseInt(e.getValue());
        } else if (k.equals("e")) {
            tokenEnd = Integer.parseInt(e.getValue());
        } else if (k.equals("y")) {
            TypeAttribute type = a.addAttribute(TypeAttribute.class);
            type.setType(e.getValue());
        } else if (k.equals("f")) {
            FlagsAttribute flags = a.addAttribute(FlagsAttribute.class);
            int f = Integer.parseInt(e.getValue(), 16);
            flags.setFlags(f);
        } else if (k.equals("p")) {
            PayloadAttribute p = a.addAttribute(PayloadAttribute.class);
            byte[] data = hexToBytes(e.getValue());
            if (data != null && data.length > 0) {
                p.setPayload(new BytesRef(data));
            }
        } else {
        // unknown attribute
        }
    }
    // handle offset attr
    OffsetAttribute offset = a.addAttribute(OffsetAttribute.class);
    offset.setOffset(tokenStart, tokenEnd);
    State resState = a.captureState();
    a.clearAttributes();
    return resState;
}
Also used : FlagsAttribute(org.apache.lucene.analysis.tokenattributes.FlagsAttribute) PayloadAttribute(org.apache.lucene.analysis.tokenattributes.PayloadAttribute) CharTermAttribute(org.apache.lucene.analysis.tokenattributes.CharTermAttribute) TypeAttribute(org.apache.lucene.analysis.tokenattributes.TypeAttribute) State(org.apache.lucene.util.AttributeSource.State) OffsetAttribute(org.apache.lucene.analysis.tokenattributes.OffsetAttribute) BytesRef(org.apache.lucene.util.BytesRef) PositionIncrementAttribute(org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute)

Example 27 with PayloadAttribute

use of org.apache.lucene.analysis.tokenattributes.PayloadAttribute in project lucene-solr by apache.

the class PayloadSetter method verifyPayload.

void verifyPayload(TokenStream ts) throws IOException {
    PayloadAttribute payloadAtt = ts.getAttribute(PayloadAttribute.class);
    ts.reset();
    for (byte b = 1; ; b++) {
        boolean hasNext = ts.incrementToken();
        if (!hasNext)
            break;
        // System.out.println("id="+System.identityHashCode(nextToken) + " " + t);
        // System.out.println("payload=" + (int)nextToken.getPayload().toByteArray()[0]);
        assertEquals(b, payloadAtt.getPayload().bytes[0]);
    }
}
Also used : PayloadAttribute(org.apache.lucene.analysis.tokenattributes.PayloadAttribute)

Aggregations

PayloadAttribute (org.apache.lucene.analysis.tokenattributes.PayloadAttribute)27 CharTermAttribute (org.apache.lucene.analysis.tokenattributes.CharTermAttribute)16 TokenStream (org.apache.lucene.analysis.TokenStream)14 BytesRef (org.apache.lucene.util.BytesRef)13 OffsetAttribute (org.apache.lucene.analysis.tokenattributes.OffsetAttribute)12 PositionIncrementAttribute (org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute)11 TypeAttribute (org.apache.lucene.analysis.tokenattributes.TypeAttribute)10 FlagsAttribute (org.apache.lucene.analysis.tokenattributes.FlagsAttribute)7 StringReader (java.io.StringReader)6 IOException (java.io.IOException)5 Document (org.apache.lucene.document.Document)5 Reader (java.io.Reader)4 Token (org.apache.lucene.analysis.Token)4 Field (org.apache.lucene.document.Field)4 MockTokenizer (org.apache.lucene.analysis.MockTokenizer)3 TermToBytesRefAttribute (org.apache.lucene.analysis.tokenattributes.TermToBytesRefAttribute)3 LinkedHashMap (java.util.LinkedHashMap)2 LinkedList (java.util.LinkedList)2 Map (java.util.Map)2 TreeMap (java.util.TreeMap)2