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