Hi Terry,

I looked this over and did some testing.

I don't get the array out of range error.

I do throw an out of range exception when you try to access a page that 
is bigger than the total number of pages.

Can you send me an example of how you get this error. I created a JUnit 
test to test this and it is working fine for me for unoptimized and 
optimized indexes.

Maybe my example of two documents doesn't capture the problem.

--Peter

On Thursday, September 5, 2002, at 10:44 AM, Terry Steichen wrote:

> Peter,
>
> I've done some more checking and it appears that the problem is in
> HitsIterator.sortByField() in creating the arrayOfIndividualHits[], 
> which
> throws an array out of bounds exception.  I'm a bit stumped about what 
> to do
> from here, as I don't fully understand the logic.  Perhaps you have 
> some
> idea?
>
> Regards
>
> Terry
>
> ----- Original Message -----
> From: "Terry Steichen" <[EMAIL PROTECTED]>
> To: "Lucene Users List" <[EMAIL PROTECTED]>
> Sent: Tuesday, September 03, 2002 1:12 PM
> Subject: Re: SearchBean - search on index with deleted documents
>
>
>> Peter,
>>
>> I just implemented the change you recommended below but to no avail.
>>
>> The challenge is that when I 'reindex' a changed document (deleting 
>> and
>> adding from the index) and then optimize for each such change 
>> process, it
>> takes far too long.  But if I skip the optimization step, the search 
>> no
>> longer works.  I get no error messages, a query simply returns 
>> nothing.
> If
>> I then invoke optimize, the search capability is completely restored.
>>
>> So, basically, for my purposes, the suggested change - for whatever
> reason -
>> simply doesn't work.  If you have any other ideas on how to get 
>> around the
>> optimize delay (which, in my case, is about 30 seconds or more), I'd 
>> sure
>> appreciate it.
>>
>> Best regards,
>>
>> Terry
>>
>>
>> ----- Original Message -----
>> From: "Peter Carlson" <[EMAIL PROTECTED]>
>> To: "Lucene Users List" <[EMAIL PROTECTED]>
>> Cc: <[EMAIL PROTECTED]>
>> Sent: Monday, July 29, 2002 9:54 AM
>> Subject: Re: SearchBean - search on index with deleted documents
>>
>>
>>> Thanks for the feedback.
>>>
>>> Please direct all Lucene related questions to the Lucene User's List.
>> You'll
>>> get more people to help and hopefully help other too.
>>>
>>>
>>> I think if you change the SortedField.addField method to
>>>
>>>     /** adds the data from the index into a string array
>>>      */
>>>     private void addSortedField(String fieldName, IndexReader ir) 
>>> throws
>>> IOException{
>>>         int numDocs = ir.numDocs();
>>>         fieldValues = new String[numDocs];
>>>         for (int i=0; i<numDocs; i++) {
>>>             if(ir.isDeleted(i) == false){
>>>                 fieldValues[i] = ir.document(i).get(fieldName);
>>>             } else {
>>>                 fieldValues[i] = "";
>>>             }
>>>         }
>>>         ir.close();
>>>     }
>>>
>>>
>>> I think this will work. I'm not yet sure if this is the best way to 
>>> go,
>> but
>>> I think it will get around the bug. It removes any field values you 
>>> are
>>> sorting on in the field so you should never run into a problem.
>>>
>>> I don't have an unoptimized index at hand, and unfortunately no time 
>>> to
>>> test. Please let me know if this works.
>>>
>>>
>>> Thanks
>>>
>>> --Peter
>>>
>>>
>>> On 7/29/02 7:23 AM, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> 
>>> wrote:
>>>
>>>> Hi Peter,
>>>>
>>>> I've found the SearchBean very useful for our project, but seem to
> have
>> run
>>>> into problems when it comes to searching an index which has had
>> documents
>>>> removed using the IndexReader.delete method (without calling the
>>>> IndexWriter.optimize method).
>>>>
>>>> In particular the error returned is:
>>>> "java.lang.IllegalArgumentException: attempt to access a deleted
>> document"
>>>>
>>>> This occurs in the SortedField.addField method and I believe has to 
>>>> do
>> with
>>>> the fact that IndexReader returns all documents - whether deleted or
>> not.
>>>> When the index is optimized the deleted documents are actually 
>>>> removed
>> and
>>>> the problem does not occur (ie if the *.del file is removed from the
>> index).
>>>>
>>>> Any thoughts on a work-around for this?
>>>>
>>>> Apologies if my understanding is flawed here - I'm new to this, and
>> thanks
>>>> very much for your help.
>>>>
>>>
>>>
>>> --
>>> To unsubscribe, e-mail:
>> <mailto:[EMAIL PROTECTED]>
>>> For additional commands, e-mail:
>> <mailto:[EMAIL PROTECTED]>
>>>
>>
>>
>> --
>> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
>> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
>>
>>
>
>
>
> --
> To unsubscribe, e-mail:   
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: 
> <mailto:[EMAIL PROTECTED]>
>
>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to