Well, the performance isn't bad considering you're executing the *search*
around 1,000 times.......
One of the characteristics of a Hits object is that it's optimized for
getting the top 100 docs or so. To get the next 100 docs it re-executes the
query. Repeatedly <G>. I'd try using a HitCollector or TopDocs instead of a
Hope this helps
On 12/7/06, Aigner, Thomas <TAigner@xxxxxxxxxxxxx> wrote:
I have a question on reading many documents and time to do this.
I have a loop on the hits object reading a record, then writing it to a
file. When there is only 1 user on the Index Searcher, this process to
read say 100,000 takes around 3 seconds. This is slow, but can be
acceptable. When a few more users do searchers, this time to just read
from the hits object becomes well over 10 seconds, sometimes even 30+
seconds. Is there a better way to read through and do something with
the hits information? And yes, I have to read all of them to do this
for (int i = 0;(i <= hits.length() - 1); i++)
if (fw == null)
fw = new BufferedWriter( new FileWriter( searchWriteSpec ),
//Write Out records
String tmpHold = "";
tmpHold = hits.doc(i).get("somefield1") + hits.doc(i).get("somefield2");
fw.write(tmpHold + "\n" );
Any ideas on how to speed this up especially with multiple users? Each
user gets their own class which has the above code in it.