You may not be able to store all the documents, but what about just storing the document IDs in a list?
And remember that a Hits object re-queries the index every 100 documents or so when you iterate through it, so if you're really using a Hits object, you're re-executing the query anyway. You might want to think about using a HitCollector, or TopDocs, or... and recording the document IDs (which is very fast, and holding 50,000 integers isn't very expensive). If you're paging through the hits using a Hits object, I believe you'll find no effective difference between keeping the searcher open and navigating through the list and re-executing the query each time. If this is true, you'll see a dramatic difference by using, say, TopDocs when you're paging into the latter parts of the list. And you'll see an *enormous* difference if you cache the doc IDs for your paging <G>... Of course, if you're not using a Hits object most of this doesn't count. Best Erick On 3/7/07, Mohammad Norouzi <[EMAIL PROTECTED]> wrote:
yes I am very concerned about this because we have a big project with many users and I am responsible for this. the thing that preoccupied my mind is application performance because there is more than 500 thousands records (documents). a single search may returns about 50 thousand documents and it is not possible to put all of them into a say java.util.List so I have to keep the searcher open and move forward or backward through the Hits and when the user clicked on "Finish" button or the time exceeds over than a specific time,(or the session destroyed) so I set a flag to true, then the other session can access that searcher without closing any searcher or reader. any way, your comments are useful for me. thanks On 3/7/07, Mark Miller <[EMAIL PROTECTED]> wrote: > > To address your hits question: I wouldn't keep hits around, but would > re-search instead. It is often more of a headache than a time savings to > keep around all of the Hits objects and to have to manage them. I made > my own Hits object that does no caching because of this. Pagination is > often best done by re-querying. > > Also, keep in mind that you prob won't have 1000 Similarities...you will > prob have much closer to 1 <g>, maybe a couple if you have created a > custom one. The biggest chance you have more than one Searcher cached > for an Index is if you have a MultiSearcher cached that searches over > it. Out of the box, indexAccessor does not handle MultiSearchers > perfectly though...it does not check out a Searcher for each of the > underlying Indexes, so you will have to do that your self...then > remember to release them all when you release the MultiSearcher. > > I think in general, you are over concerned. IndexAccessor will handle > most of this for you without much intervention on your part. > > - Mark > > Mohammad Norouzi wrote: > > Hello Mark, > > there is something vague for me about the Lucene-indexAccessor you > > created > > and my problem. > > as I see your codes, you create IndexSearcher and put it into a Map > > and the > > only thing that separate them is the Similarity the have. so if say 1000 > > users with different Similarity connect to my application there will > > be 1000 > > IndexSearcher with their own internal Reader. > > now, in my case, I have an IndexResultSet just like java.sql.ResultSet > > which > > it contains a Hits. so a user may go forward or backward through the > > Hits' > > documents and actually every user are doing this job. > > > > to do so, I have to find the Similarity that a user working with it > > and find > > the right IndexSearcher in order to support pagination for her. is this > > right? I mean can I trust to Similarity to find the right IndexReader > > that a > > user have used it before? > > > > another question is, how about I have one IndexReader for all my > > IndexSearcher and manage them simultaneously to access that single > > Reader.? > > > > thank you very much in advance > > > > > > On 2/22/07, Mark Miller <[EMAIL PROTECTED]> wrote: > >> > >> I would not do this from scratch...if you are interested in Solr go > that > >> route else I would build off > >> http://issues.apache.org/jira/browse/LUCENE-390 > >> > >> - Mark > >> > >> Mohammad Norouzi wrote: > >> > Hi all, > >> > I am going to build a Searcher pooling. if any one has experience on > >> > this, I > >> > would be glad to hear his/her recommendation and suggestion. I want > to > >> > know > >> > what issues I should be apply. considering I am going to use this on > a > >> > web > >> > application with many user sessions. > >> > > >> > thank you very much in advance. > >> > >> --------------------------------------------------------------------- > >> 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] > > -- Regards, Mohammad