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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]