Thanks Ahmet.It worked. As per your suggestion i have changed the code as below.
final String term=charTermAttr.toString(); final String convertedTerm = Converter.convert(term); charTermAttr.setEmpty().append(convertedTerm); return true; now for the input stream "term1 part 2 assessment" gives the result "termone part two assessment". Thanks for your support. Regards, Smitha On Fri, Jan 15, 2016 at 3:40 PM, Ahmet Arslan <iori...@yahoo.com.invalid> wrote: > Hi Simitha, > > Please try below : > > final String term = charTermAttr.toString(); > final String s = convertedTerm = Converter.convert(term); > > > // If not changed, don't waste the time adjusting the token. if ((s > != null) && !s.equals(term)) > charTermAttr.setEmpty().append(s); > > > > Ahmet > > On Friday, January 15, 2016 11:59 AM, Smitha Rajiv < > smitharaji...@gmail.com> wrote: > > > > Hi > > I have a requirement such that while indexing if tokens contains numbers, > it needs to be converted into corresponding words. > > e.g : term1 part 2 assignments -> termone part two assignments. > > I have created a custom filter with following code: > > @Override > public boolean incrementToken() throws IOException { > if (!input.incrementToken()) > return false; > char[] buffer = charTermAttr.buffer(); > String newTerm = new String(buffer); > convertedTerm = Converter.convert(newTerm); > charTermAttr.setEmpty(); > charTermAttr.copyBuffer(convertedTerm.toCharArray(), 0, > > convertedTerm.length()); > return true; > > } > But its given weird results when i analyze. > > After applying the custom filter i am getting the result as > termone partone twoartone assignments. > > It looks like the buffer length which i am setting for the first token is > not getting reset while picking up the next token.I have a feeling that > somewhere i am messing up with the offsets. > > Could you please help me in this. > > Thanks & Regards, > Smitha >