public override BytesRef Encode(char[] buffer, int offset, int length) { int payload = ArrayUtil.ParseInt32(buffer, offset, length); //TODO: improve this so that we don't have to new Strings byte[] bytes = PayloadHelper.EncodeInt32(payload); BytesRef result = new BytesRef(bytes); return(result); }
public override sealed bool IncrementToken() { if (m_input.IncrementToken()) { byte[] data = new byte[8]; PayloadHelper.EncodeInt32(offsetAtt.StartOffset, data, 0); PayloadHelper.EncodeInt32(offsetAtt.EndOffset, data, 4); BytesRef payload = new BytesRef(data); payAtt.Payload = payload; return(true); } else { return(false); } }
public virtual void TestIntEncoding() { string test = "The quick|1 red|2 fox|3 jumped over the lazy|5 brown|99 dogs|83"; DelimitedPayloadTokenFilter filter = new DelimitedPayloadTokenFilter(new MockTokenizer(new StringReader(test), MockTokenizer.WHITESPACE, false), '|', new IntegerEncoder()); ICharTermAttribute termAtt = filter.GetAttribute <ICharTermAttribute>(); IPayloadAttribute payAtt = filter.GetAttribute <IPayloadAttribute>(); filter.Reset(); AssertTermEquals("The", filter, termAtt, payAtt, null); AssertTermEquals("quick", filter, termAtt, payAtt, PayloadHelper.EncodeInt32(1)); AssertTermEquals("red", filter, termAtt, payAtt, PayloadHelper.EncodeInt32(2)); AssertTermEquals("fox", filter, termAtt, payAtt, PayloadHelper.EncodeInt32(3)); AssertTermEquals("jumped", filter, termAtt, payAtt, null); AssertTermEquals("over", filter, termAtt, payAtt, null); AssertTermEquals("the", filter, termAtt, payAtt, null); AssertTermEquals("lazy", filter, termAtt, payAtt, PayloadHelper.EncodeInt32(5)); AssertTermEquals("brown", filter, termAtt, payAtt, PayloadHelper.EncodeInt32(99)); AssertTermEquals("dogs", filter, termAtt, payAtt, PayloadHelper.EncodeInt32(83)); assertFalse(filter.IncrementToken()); filter.End(); filter.Dispose(); }