Hi Vladimir,
Can You please explain me what's the benefit of this approach and why
_pickles_?
I f I understand correctly the ?-n was how to make query run
paralelly on
multi-index. Is ParalelMultiSearcher not for this?
Regards,
Joel
"Vladimir Yuryev"
<[EMAIL PROTECTED] To: "Lucene
Users List" <[EMAIL PROTECTED]>
ru> cc:
Subject: Re:
MultiSearcher to Indexing.
13.08.2004 06:45
Please respond to Category:
|-------------------------|
"Lucene Users | ( )
Action needed |
List" | ( )
Decision needed |
| ( )
General Information |
Natarajan,
MultiSeacher - it is well, but this a way have pickles.
Example, but it is not sample:
public Query combine(Query[] queries) throws IOException {
if (expandedQueries.length < 2) {
return queries[0];
}
Query[] combined = new Query[2];
combined[0] = new BooleanQuery();
BooleanQuery.setMaxClauseCount(10000);
for (int i = 0; i < queries.length; i++) {
combined[1] = queries[i];
if (queries[i] instanceof BooleanQuery ||
queries[i] instanceof MultiTermQuery ||
queries[i] instanceof PrefixQuery ||
queries[i] instanceof RangeQuery) {
combined[0] = Query.mergeBooleanQueries(combined);
} else if (queries[i] instanceof PhraseQuery) {
Term[] queryTerms =
((PhraseQuery)queries[i]).getTerms();
for (int j = 0; j < queryTerms.length; j++) {
TermQuery q = new TermQuery(queryTerms[j]);
((BooleanQuery)combined[0]).add(q, true, false);
}
} else ((BooleanQuery)combined[0]).add(queries[i], true,
false);
}
return combined[0];
}
...
Searcher[] searchers = new IndexSearcher[indexName.length];
for(int i=0;i<indexName.length;i++) {
searchers[i] = new IndexSearcher(indexName[i]);
}
MultiSearcher multiSearcher=new MultiSearcher(searchers);
QueryParser qp = new QueryParser(FIELD_CONTENTS, analyzer);
query = QueryParser.parse(queryString, FIELD_CONTENTS,
analyzer);
hits = multiSearcher.search(query);
IndexReader reader[] = new IndexReader[indexName.length];
Query[] expandedQueries=new Query[indexName.length];
for(int i=0;i<indexName.length;i++){
expandedQueries[i]=query.rewrite(reader[i]);
}
query=combine(expandedQueries);
...
Best regards,
Vladimir.
On Thu, 12 Aug 2004 20:51:13 +0530
"Natarajan.T" <[EMAIL PROTECTED]> wrote:
Thanks for your response.
Ok I can understand the concept ..... if you have any sample code pls
sent it to me.
You have any idea about Parallel Searcher pls share to me.
-----Original Message-----
From: Terence Lai [mailto:[EMAIL PROTECTED]
Sent: Thursday, August 12, 2004 8:40 PM
To: Lucene Users List
Subject: RE: MultiSearcher to Indexing.
This is how I do it:
IndexSearcher[] is = new IndexSearcher[2];
is[0] = new IndexSearcher(IndexDir1); // first index folder
is[1] = new IndexSearcher(IndexDir2); // second index folder
MultiSearcher searcher = new MultiSearcher(is);
searcher.search(query);
I think that the MulitSearcher is only doing sequential search.
Alternately, you can use ParallelMultiSearcher which allows you to do
the search in parallel.
Hope this helps,
Terence
FYI
I have an Indexing files in different folders, in this time how can
I
doing the Searching process using MultiSearcher.
Thanks,
Natarajan.
----------------------------------------------------------
Get your free email account from http://www.trekspace.com
Your Internet Virtual Desktop!
---------------------------------------------------------------------
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]
---------------------------------------------------------------------
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]