I suspect the most performant is as follows (but could require bags of
RAM) :
Heres the pseudo code .....
[on IndexReader open, initialize map]
int []luceneDocIdsByDbKey=new int [largestDbKey]; //could be large array!
for (int i=0;i;<reader.maxDocs;i++)
{
int dbKey=Integer.parseInt(reader.doc(i).get("dbKey"));
luceneDocIdsByDbKey[dbKey]=i;
}
[on search, use map]
results=dbConn.executeQuery(select dbKey from db where ........)
BitSet bits=new BitSet(reader.maxDocs);
for( all dbKey in resultset)
{
bits.set(luceneDocIdsByDbKey[dbKey];
}
MyBitSetFilter filter=new MyBitSetFilter(bits);
Should be super-quick but requires (int size* num db records) memory for
the map.
Cheers
Mark
___________________________________________________________
Yahoo! Messenger - NEW crystal clear PC to PC calling worldwide with voicemail http://uk.messenger.yahoo.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]