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 Daniel Cortes <dc...@fib.upc.edu> on 2005/07/27 20:42:16 UTC

another problem with Multisearcher

I don't know why, but all this problems that I shared with you are 
produced for my use of multisearcher

Now I've obtained this, anyone had this problem sometimes?

java.lang.IndexOutOfBoundsException: Index: 43, Size: 12
        at java.util.ArrayList.RangeCheck(ArrayList.java:507)
        at java.util.ArrayList.get(ArrayList.java:324)
        at org.apache.lucene.index.FieldInfos.fieldInfo(FieldInfos.java:155)
        at org.apache.lucene.index.FieldInfos.fieldName(FieldInfos.java:151)
        at 
org.apache.lucene.index.SegmentTermEnum.readTerm(SegmentTermEnum.java:149)
        at 
org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:115)
        at 
org.apache.lucene.index.TermInfosReader.scanEnum(TermInfosReader.java:143)
        at 
org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:137)
        at 
org.apache.lucene.index.TermInfosReader.terms(TermInfosReader.java:196)
        at 
org.apache.lucene.index.SegmentReader.terms(SegmentReader.java:230)
        at org.apache.lucene.search.PrefixQuery.rewrite(PrefixQuery.java:39)
        at 
org.apache.lucene.search.BooleanQuery.rewrite(BooleanQuery.java:243)
        at 
org.apache.lucene.search.IndexSearcher.rewrite(IndexSearcher.java:166)
        at org.apache.lucene.search.Query.weight(Query.java:84)
        at 
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:85)
        at 
org.apache.lucene.search.MultiSearcher.search(MultiSearcher.java:116)
        at org.apache.lucene.search.Hits.getMoreDocs(Hits.java:64)
        at org.apache.lucene.search.Hits.<init>(Hits.java:43)
        at org.apache.lucene.search.Searcher.search(Searcher.java:33)
        at org.apache.lucene.search.Searcher.search(Searcher.java:27)

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


Re: another problem with Multisearcher

Posted by Daniel Cortes <dc...@fib.upc.edu>.
I reply myself, the problem was generated because I closed multisearcher 
when I finalize:

       SearchResults sr=null;
           Query buscar = 
MultiFieldQueryParser.parse(search_text,fields,required,analyzer);
           Hits encontrados=searcher.search(buscar);
           sr = new SearchResults(encontrados,userviewer,idPortal);
       searcher.close();  
<-------!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
But when I have to close?

I have another question about mulisearcher,  how I have to use this     
                    MultiFieldQueryParser.NORMAL_FIELD

thks to all for yours replies
Daniel Cortes wrote:

> It's very strange because the first search works good , but next 
> search not works and give me the error message
>
> java.io.IOException: Bad file descriptor
>        at java.io.RandomAccessFile.seek(Native Method)
>        at 
> org.apache.lucene.store.FSInputStream.readInternal(FSDirectory.java:415)
>        at 
> org.apache.lucene.store.InputStream.refill(InputStream.java:158)
>        at 
> org.apache.lucene.store.InputStream.readByte(InputStream.java:43)
>        at 
> org.apache.lucene.store.InputStream.readBytes(InputStream.java:57)
>        at 
> org.apache.lucene.index.CompoundFileReader$CSInputStream.readInternal(CompoundFileReader.java:220) 
>
>        at 
> org.apache.lucene.store.InputStream.refill(InputStream.java:158)
>        at 
> org.apache.lucene.store.InputStream.readByte(InputStream.java:43)
>        at 
> org.apache.lucene.store.InputStream.readVInt(InputStream.java:83)
>        at 
> org.apache.lucene.index.SegmentTermEnum.readTerm(SegmentTermEnum.java:142) 
>
>        at 
> org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:115)
>        at 
> org.apache.lucene.index.TermInfosReader.scanEnum(TermInfosReader.java:143) 
>
>        at 
> org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:137)
>        at 
> org.apache.lucene.index.TermInfosReader.terms(TermInfosReader.java:196)
>        at 
> org.apache.lucene.index.SegmentReader.terms(SegmentReader.java:230)
>        at 
> org.apache.lucene.search.PrefixQuery.rewrite(PrefixQuery.java:39)
>        at 
> org.apache.lucene.search.BooleanQuery.rewrite(BooleanQuery.java:243)
>        at 
> org.apache.lucene.search.IndexSearcher.rewrite(IndexSearcher.java:166)
>        at org.apache.lucene.search.Query.weight(Query.java:84)
>        at 
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:85)
>        at 
> org.apache.lucene.search.MultiSearcher.search(MultiSearcher.java:116)
>        at org.apache.lucene.search.Hits.getMoreDocs(Hits.java:64)
>        at org.apache.lucene.search.Hits.<init>(Hits.java:43)
>        at org.apache.lucene.search.Searcher.search(Searcher.java:33)
>        at org.apache.lucene.search.Searcher.search(Searcher.java:27)
>
> I've opened the index with Luke and the index are good.
>
> My code that use Multisearcher:
>
> this line I don't know what it do, but i think that is not the problem
> private int[] required= 
> {MultiFieldQueryParser.NORMAL_FIELD,MultiFieldQueryParser.NORMAL_FIELD,MultiFieldQueryParser.NORMAL_FIELD}; 
>
> private IndexSearcher[] searchers;
>       //indexs have the path of my indexs Lucene
>
>       for (int i = 0; i < indexs.length; i++) {
>            searchers[i] = new IndexSearcher(getPath(indexs[i]));
>       }
>        searcher = new MultiSearcher(searchers);
>        MultiSearcher searcher=iService.openMultiSearcher();
>        SearchResults sr=null;
>            Query buscar = 
> MultiFieldQueryParser.parse(search_text,fields,required,analyzer);
>            Hits encontrados=searcher.search(buscar);
>            sr = new SearchResults(encontrados,userviewer,idPortal);
>        searcher.close();
>
>
>
> ---------------------------------------------------------------------
> 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: another problem with Multisearcher

Posted by Daniel Cortes <dc...@fib.upc.edu>.
It's very strange because the first search works good , but next search 
not works and give me the error message

java.io.IOException: Bad file descriptor
        at java.io.RandomAccessFile.seek(Native Method)
        at 
org.apache.lucene.store.FSInputStream.readInternal(FSDirectory.java:415)
        at org.apache.lucene.store.InputStream.refill(InputStream.java:158)
        at org.apache.lucene.store.InputStream.readByte(InputStream.java:43)
        at 
org.apache.lucene.store.InputStream.readBytes(InputStream.java:57)
        at 
org.apache.lucene.index.CompoundFileReader$CSInputStream.readInternal(CompoundFileReader.java:220)
        at org.apache.lucene.store.InputStream.refill(InputStream.java:158)
        at org.apache.lucene.store.InputStream.readByte(InputStream.java:43)
        at org.apache.lucene.store.InputStream.readVInt(InputStream.java:83)
        at 
org.apache.lucene.index.SegmentTermEnum.readTerm(SegmentTermEnum.java:142)
        at 
org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:115)
        at 
org.apache.lucene.index.TermInfosReader.scanEnum(TermInfosReader.java:143)
        at 
org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:137)
        at 
org.apache.lucene.index.TermInfosReader.terms(TermInfosReader.java:196)
        at 
org.apache.lucene.index.SegmentReader.terms(SegmentReader.java:230)
        at org.apache.lucene.search.PrefixQuery.rewrite(PrefixQuery.java:39)
        at 
org.apache.lucene.search.BooleanQuery.rewrite(BooleanQuery.java:243)
        at 
org.apache.lucene.search.IndexSearcher.rewrite(IndexSearcher.java:166)
        at org.apache.lucene.search.Query.weight(Query.java:84)
        at 
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:85)
        at 
org.apache.lucene.search.MultiSearcher.search(MultiSearcher.java:116)
        at org.apache.lucene.search.Hits.getMoreDocs(Hits.java:64)
        at org.apache.lucene.search.Hits.<init>(Hits.java:43)
        at org.apache.lucene.search.Searcher.search(Searcher.java:33)
        at org.apache.lucene.search.Searcher.search(Searcher.java:27)

I've opened the index with Luke and the index are good.

My code that use Multisearcher:

this line I don't know what it do, but i think that is not the problem
private int[] required= 
{MultiFieldQueryParser.NORMAL_FIELD,MultiFieldQueryParser.NORMAL_FIELD,MultiFieldQueryParser.NORMAL_FIELD};
private IndexSearcher[] searchers;
       
//indexs have the path of my indexs Lucene

       for (int i = 0; i < indexs.length; i++) {
            searchers[i] = new IndexSearcher(getPath(indexs[i]));
       }
        searcher = new MultiSearcher(searchers);
        MultiSearcher searcher=iService.openMultiSearcher();
        SearchResults sr=null;
            Query buscar = 
MultiFieldQueryParser.parse(search_text,fields,required,analyzer);
            Hits encontrados=searcher.search(buscar);
            sr = new SearchResults(encontrados,userviewer,idPortal);
        searcher.close();



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


Re: another problem with Multisearcher

Posted by Otis Gospodnetic <ot...@yahoo.com>.
Some changes were made to MultiSearcher version that is in the SVN
repository.  Which version of Lucene are you using, and can you provide
an index and a query that cause this exception?

Otis


--- Daniel Cortes <dc...@fib.upc.edu> wrote:

> I don't know why, but all this problems that I shared with you are 
> produced for my use of multisearcher
> 
> Now I've obtained this, anyone had this problem sometimes?
> 
> java.lang.IndexOutOfBoundsException: Index: 43, Size: 12
>         at java.util.ArrayList.RangeCheck(ArrayList.java:507)
>         at java.util.ArrayList.get(ArrayList.java:324)
>         at
> org.apache.lucene.index.FieldInfos.fieldInfo(FieldInfos.java:155)
>         at
> org.apache.lucene.index.FieldInfos.fieldName(FieldInfos.java:151)
>         at 
>
org.apache.lucene.index.SegmentTermEnum.readTerm(SegmentTermEnum.java:149)
>         at 
>
org.apache.lucene.index.SegmentTermEnum.next(SegmentTermEnum.java:115)
>         at 
>
org.apache.lucene.index.TermInfosReader.scanEnum(TermInfosReader.java:143)
>         at 
> org.apache.lucene.index.TermInfosReader.get(TermInfosReader.java:137)
>         at 
>
org.apache.lucene.index.TermInfosReader.terms(TermInfosReader.java:196)
>         at 
> org.apache.lucene.index.SegmentReader.terms(SegmentReader.java:230)
>         at
> org.apache.lucene.search.PrefixQuery.rewrite(PrefixQuery.java:39)
>         at 
> org.apache.lucene.search.BooleanQuery.rewrite(BooleanQuery.java:243)
>         at 
>
org.apache.lucene.search.IndexSearcher.rewrite(IndexSearcher.java:166)
>         at org.apache.lucene.search.Query.weight(Query.java:84)
>         at 
> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:85)
>         at 
> org.apache.lucene.search.MultiSearcher.search(MultiSearcher.java:116)
>         at org.apache.lucene.search.Hits.getMoreDocs(Hits.java:64)
>         at org.apache.lucene.search.Hits.<init>(Hits.java:43)
>         at org.apache.lucene.search.Searcher.search(Searcher.java:33)
>         at org.apache.lucene.search.Searcher.search(Searcher.java:27)
> 
> ---------------------------------------------------------------------
> 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