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
Hits object....

Hope this helps
Erick

On 12/7/06, Aigner, Thomas <[EMAIL PROTECTED]> wrote:





Howdy all,



      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
particular task.



for (int i = 0;(i <= hits.length() - 1); i++)

{



      if (fw == null)

      {

            fw = new BufferedWriter( new FileWriter( searchWriteSpec ),
8196) ;

      }



      //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.



Thanks,

Tom

























































Reply via email to