IndexSearcher executed concurrently

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

IndexSearcher executed concurrently

jacky-8
hi,
   The source code in the end is the class to search sth.
   1. I wander if concurrent users can get the right results with different queries since the class has only one IndexSearcher instance.
   2. As we know, a new IndexSearcher can be created when user request his query. If first method gets the right
result, so, which method can get better performance.

   public class MySearcher{
      private Searcher indexSearcher = new IndexSearcher("indexPath");
      private QueryParser parser = new QueryParser("content", new StandardAnalyzer());

      public Document[] search(String queryLine){
          Hits hits = indexSearcher.search(parser.parse(queryLine));
          Document docs = new Document[hits.length()];
          for(int i = 0; i < hits.length(); i ++){
             docs[i] = hits.doc(i);
          }
          return docs;
      }

    Thanks for you help!  
 
     Best Regards.
       jacky  
       
Reply | Threaded
Open this post in threaded view
|

Re: IndexSearcher executed concurrently

Karl Wettin
On Tue, 2006-09-05 at 17:57 +0800, jacky wrote:
> 1. I wander if concurrent users can get the right results with
> different queries since the class has only one IndexSearcher instance.
>  
> 2. As we know, a new IndexSearcher can be created when user request
> his query. If first method gets the right result, so, which method can
> get better performance.

I'm afraid I don't understand your questions. What do you mean by "the
right results"? Perhaps this quote from the javadocs is what you are
looking for: For performance reasons it is recommended to open only one
IndexSearcher and use it for all of your searches.

http://lucene.apache.org/java/docs/api/org/apache/lucene/search/IndexSearcher.html


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: IndexSearcher executed concurrently

jacky-8
     Oh, that is great! I didn't notice this javadoc. Maybe  i need to
update my lucene lib.
     I had thought  one user requests his query, other queries maybe impact
on the result since using a single IndexSearcher.  Forget these mails.
Thanks a lot..



On 9/5/06, karl wettin <[hidden email]> wrote:

>
> On Tue, 2006-09-05 at 17:57 +0800, jacky wrote:
> > 1. I wander if concurrent users can get the right results with
> > different queries since the class has only one IndexSearcher instance.
> >
> > 2. As we know, a new IndexSearcher can be created when user request
> > his query. If first method gets the right result, so, which method can
> > get better performance.
>
> I'm afraid I don't understand your questions. What do you mean by "the
> right results"? Perhaps this quote from the javadocs is what you are
> looking for: For performance reasons it is recommended to open only one
> IndexSearcher and use it for all of your searches.
>
>
> http://lucene.apache.org/java/docs/api/org/apache/lucene/search/IndexSearcher.html
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>


--
  Best Regards.
      jacky