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