Hi Erlend,

I have written a similar token filter. Please see :

https://github.com/iorixxx/lucene-solr-analysis-turkish/blob/master/src/main/java/org/apache/lucene/analysis/tr/Zemberek2DeasciifyFilterFactory.java

replace 

final String[] values = stemmer.stem(tokenTerm);

with 

stack = stemmer.stem(tokenTerm);

Ahmet




On Monday, December 15, 2014 4:53 PM, Michael Sokolov 
<msoko...@safaribooksonline.com> wrote:
Well I think your first step should be finding a reproducible test case 
and encoding it as a unit test.  But I suspect ultimately the fix will 
be something to do with positionIncrement ...

-Mike


On 12/15/2014 09:08 AM, Erlend Garåsen wrote:
> On 15.12.14 14:11, Michael Sokolov wrote:
>> I'm not sure, but is it necessary to set positionIncAttr to 1 when there
>> are *not* any lemmas found?  I think the usual pattern is to call
>> clearAttributes() at the start of incrementToken
>
> It is set to 0 only if there are stems/lemmas found:
> if (!terms.isEmpty()) {
>   positionAttr.setPositionIncrement(0);
>
> The terms list will only contain entries if there are lemmas found.
>
> But maybe I should empty this list before I return true, just like this?
>
> if (!terms.isEmpty()) {
>   termAtt.setEmpty().append(terms.poll());
>   positionAttr.setPositionIncrement(0);
>   terms.clear();
>   return true;
> } else if ...
>

Reply via email to