1. You can close the searcher once you're done. If you want to reopen the index, you can close and reopen only the updated 3 readers and keep the 2 old indexreaders and reuse it. It should reduce the time to reopen it. 2. Make sure that you optimize it every once in a while 3. You might consider separating indices in separated storage and use ParallelReader
Sebastin wrote: > > The problem in my pplication are as follows: > 1.I am not able to see the updated records in my index > store because i instantiate > IndexReader and IndexSearcher class once that is in the first > search.further searches use the same IndexReaders(5 Directories) and > IndexSearcher with different queries. > > 2.My search is very very slow First 2 Directories of size > 10 GB each which are having old index records and no update in that > remaining 3 Diretories are updated every second. > > 3.i am Indexing 20 million records per day so the Index > store gets growing and it makes search very very slower. > > 4.I am using searcherOne class as the global application > helper class ,with the scope as APPLICATION it consists of one IndexReader > and IndexSearcher get set method which will hold the IndexReader and > IndexSearcher object after the First Search.it is used for all other > searches. > > 5.I am using Lucene 2.2.0 version, in a WEB Application > which index 15 fields per document and Index 5 Fieds,store 10 Fields.i am > not using any sort in my query.for a single query upto the maximum it > fetches 600 records from the index store(5 direcories) > > > hossman wrote: >> >> >> : I set IndexSearcher as the application Object after the first search. >> ... >> : how can i reconstruct the new IndexSearcher for every hour to see the >> : updated records . >> >> i'm confused ... my understanding based on the comments you made below >> (in an earlier message) was that you already *were* constructing a new >> IndexSearcher once an hour -- but every time you do that, your memory >> usage grows, and and that sometimes you got OOM Errors. >> >> if that's not what you said, then i think you need to explain, in detail, >> in one message, exactly what your problem is. And don't assume we >> understand anything -- tell us *EVERYTHING* (like, for example, what the >> word "crore" means, how "searcherOne" is implemented, and the answer to >> the specfic question i asked in my last message: does your application, >> contain anywhere in it, any code that will close anything (IndexSearchers >> or IndexReaders) ? >> >> >> : > : I use StandardAnalyzer.the records daily ranges from 5 crore to 6 >> crore. >> : > for >> : > : every second i am updating my Index. i instantiate IndexSearcher >> object >> : > one >> : > : time for all the searches. for an hour can i see the updated >> records in >> : > the >> : > : indexstore by reinstantiating IndexSearcher object.but the problem >> when >> : > i >> : > : reinstantiate IndexSearcher ,my RAM memory gets appended.is there >> any >> >> >> : > IndexSearcher are you explicitly closing both the old IndexSearcher >> as >> : > well as all of 4 of those old IndexReaders and the MultiReader? >> >> >> >> >> -Hoss >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> > > -- View this message in context: http://www.nabble.com/Java-Heap-Space--Out-Of-Memory-Error-tf4376803.html#a12595489 Sent from the Lucene - Java Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]