You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@lucene.apache.org by Chris Lu <ch...@gmail.com> on 2010/01/14 22:38:45 UTC

IllegalArgumentException when IndexWriter.addDocument

Seems a integer overflow problem?

java.lang.IllegalArgumentException: Increment must be zero or greater: 
-472893952
  at 
org.apache.lucene.analysis.tokenattributes.PositionIncrementAttributeImpl.setPositionIncrement(PositionIncrementAttributeImpl.java:58)
  at 
org.apache.lucene.analysis.StopFilter.incrementToken(StopFilter.java:256)
  at 
org.apache.lucene.index.DocInverterPerField.processFields(DocInverterPerField.java:188)
  at 
org.apache.lucene.index.DocFieldProcessorPerThread.processDocument(DocFieldProcessorPerThread.java:246)
  at 
org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:774)
  at 
org.apache.lucene.index.DocumentsWriter.addDocument(DocumentsWriter.java:752)
  at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1931)
  at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1905)


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Re: IllegalArgumentException when IndexWriter.addDocument

Posted by Simon Willnauer <si...@googlemail.com>.
Which analyzer are you using?

simon
On Thu, Jan 14, 2010 at 10:40 PM, Chris Lu <ch...@gmail.com> wrote:
> Notes: I am using Lucene 3.0
>>
>> Seems a integer overflow problem?
>>
>> java.lang.IllegalArgumentException: Increment must be zero or greater:
>> -472893952
>>  at
>> org.apache.lucene.analysis.tokenattributes.PositionIncrementAttributeImpl.setPositionIncrement(PositionIncrementAttributeImpl.java:58)
>>  at
>> org.apache.lucene.analysis.StopFilter.incrementToken(StopFilter.java:256)
>>  at
>> org.apache.lucene.index.DocInverterPerField.processFields(DocInverterPerField.java:188)
>>  at
>> org.apache.lucene.index.DocFieldProcessorPerThread.processDocument(DocFieldProcessorPerThread.java:246)
>>  at
>> org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:774)
>>  at
>> org.apache.lucene.index.DocumentsWriter.addDocument(DocumentsWriter.java:752)
>>  at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1931)
>>  at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1905)
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Re: IllegalArgumentException when IndexWriter.addDocument

Posted by Chris Lu <ch...@gmail.com>.
I am using a custom analyzer upgrading from Lucene 2.x.
Need to get more familiar with Lucene 3.0 behavior.
I think this is one of the upgrade pitfalls.

Thanks for the help!

Chris

Uwe Schindler wrote:
> This problem occurs, if you have a Tokenizer or TokenFilter that produces new tokens but does not call clearAttributes(). What TokenStreams do you use in your analyzer?
>
> If you not call clearAttributes() (see javadocs of Tokenizer!) whenever you produce new tokens (in any type of TokenStream), the positionIncrement is never reset back to 1 (and when in adiition the analyzer reuses the tokenstream, it is really never reset even across multiple documents). So whenever a stopword occurs it get larger...
>
> -----
> Uwe Schindler
> H.-H.-Meier-Allee 63, D-28213 Bremen
> http://www.thetaphi.de
> eMail: uwe@thetaphi.de
>
>
>   
>> -----Original Message-----
>> From: Chris Lu [mailto:chris.lu@gmail.com]
>> Sent: Thursday, January 14, 2010 10:41 PM
>> To: java-user@lucene.apache.org
>> Subject: Re: IllegalArgumentException when IndexWriter.addDocument
>>
>> Notes: I am using Lucene 3.0
>>     
>>> Seems a integer overflow problem?
>>>
>>> java.lang.IllegalArgumentException: Increment must be zero or
>>>       
>> greater:
>>     
>>> -472893952
>>>  at
>>>
>>>       
>> org.apache.lucene.analysis.tokenattributes.PositionIncrementAttributeIm
>> pl.setPositionIncrement(PositionIncrementAttributeImpl.java:58)
>>     
>>>  at
>>>
>>>       
>> org.apache.lucene.analysis.StopFilter.incrementToken(StopFilter.java:25
>> 6)
>>     
>>>  at
>>>
>>>       
>> org.apache.lucene.index.DocInverterPerField.processFields(DocInverterPe
>> rField.java:188)
>>     
>>>  at
>>>
>>>       
>> org.apache.lucene.index.DocFieldProcessorPerThread.processDocument(DocF
>> ieldProcessorPerThread.java:246)
>>     
>>>  at
>>>
>>>       
>> org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.
>> java:774)
>>     
>>>  at
>>>
>>>       
>> org.apache.lucene.index.DocumentsWriter.addDocument(DocumentsWriter.jav
>> a:752)
>>     
>>>  at
>>>
>>>       
>> org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1931)
>>     
>>>  at
>>>
>>>       
>> org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1905)
>>     
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>> For additional commands, e-mail: java-user-help@lucene.apache.org
>>     
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>   

RE: IllegalArgumentException when IndexWriter.addDocument

Posted by Uwe Schindler <uw...@thetaphi.de>.
This problem occurs, if you have a Tokenizer or TokenFilter that produces new tokens but does not call clearAttributes(). What TokenStreams do you use in your analyzer?

If you not call clearAttributes() (see javadocs of Tokenizer!) whenever you produce new tokens (in any type of TokenStream), the positionIncrement is never reset back to 1 (and when in adiition the analyzer reuses the tokenstream, it is really never reset even across multiple documents). So whenever a stopword occurs it get larger...

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: uwe@thetaphi.de


> -----Original Message-----
> From: Chris Lu [mailto:chris.lu@gmail.com]
> Sent: Thursday, January 14, 2010 10:41 PM
> To: java-user@lucene.apache.org
> Subject: Re: IllegalArgumentException when IndexWriter.addDocument
> 
> Notes: I am using Lucene 3.0
> > Seems a integer overflow problem?
> >
> > java.lang.IllegalArgumentException: Increment must be zero or
> greater:
> > -472893952
> >  at
> >
> org.apache.lucene.analysis.tokenattributes.PositionIncrementAttributeIm
> pl.setPositionIncrement(PositionIncrementAttributeImpl.java:58)
> >
> >  at
> >
> org.apache.lucene.analysis.StopFilter.incrementToken(StopFilter.java:25
> 6)
> >  at
> >
> org.apache.lucene.index.DocInverterPerField.processFields(DocInverterPe
> rField.java:188)
> >
> >  at
> >
> org.apache.lucene.index.DocFieldProcessorPerThread.processDocument(DocF
> ieldProcessorPerThread.java:246)
> >
> >  at
> >
> org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.
> java:774)
> >
> >  at
> >
> org.apache.lucene.index.DocumentsWriter.addDocument(DocumentsWriter.jav
> a:752)
> >
> >  at
> >
> org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1931)
> >  at
> >
> org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1905)
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Re: IllegalArgumentException when IndexWriter.addDocument

Posted by Chris Lu <ch...@gmail.com>.
Notes: I am using Lucene 3.0
> Seems a integer overflow problem?
>
> java.lang.IllegalArgumentException: Increment must be zero or greater: 
> -472893952
>  at 
> org.apache.lucene.analysis.tokenattributes.PositionIncrementAttributeImpl.setPositionIncrement(PositionIncrementAttributeImpl.java:58) 
>
>  at 
> org.apache.lucene.analysis.StopFilter.incrementToken(StopFilter.java:256)
>  at 
> org.apache.lucene.index.DocInverterPerField.processFields(DocInverterPerField.java:188) 
>
>  at 
> org.apache.lucene.index.DocFieldProcessorPerThread.processDocument(DocFieldProcessorPerThread.java:246) 
>
>  at 
> org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:774) 
>
>  at 
> org.apache.lucene.index.DocumentsWriter.addDocument(DocumentsWriter.java:752) 
>
>  at 
> org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1931)
>  at 
> org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1905)
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org