Re: Lucene Concurrent Search

2013-09-06 Thread Ian Lea
For the singleton technique that I use, the per-search code looks like import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.SearcherManager; SearcherManager sm = LuceneSearcherManagerCache.get(indexdir); IndexSearcher s = sm.acquire(); try { search(...); }

Re: Lucene Concurrent Search

2013-09-06 Thread Stephen Green
Something like: public class SearchListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { ServletContext sc = sce.getServletContext(); String indexDir = sc.getInitParameter(indexDir); SearcherManager

Re: Lucene Concurrent Search

2013-09-06 Thread David Miranda
Why use Solr instead of Lucene for this kind of application? 2013/9/6 Stephen Green eelstretch...@gmail.com Something like: public class SearchListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { ServletContext

Re: Lucene Concurrent Search

2013-09-06 Thread Stephen Green
Mostly because it already handles all of the I sexing and querying that I expect you'll want to be doing and now with Solr Cloud you can ven scale search beyond one machine. If you're just looking to learn about this stuff, though, it is fun to roll your own! On Friday, September 6, 2013, David

Re: Lucene Concurrent Search

2013-09-05 Thread Ian Lea
Take a look at org.apache.lucene.search.SearcherManager. From the javadocs Utility class to safely share IndexSearcher instances across multiple threads, while periodically reopening.. -- Ian. On Thu, Sep 5, 2013 at 2:16 AM, David Miranda david.b.mira...@gmail.com wrote: Hi, I'm developing

Re: Lucene Concurrent Search

2013-09-05 Thread Aditya
Hi You want to use REST service for your search, then my advice would be to use Solr. As it has buitl-in functionality of REST API. If you want to use Lucene then below are my comments: 1. In do search function, you are creating reader object. If this call is invoked for every query then it

Re: Lucene Concurrent Search

2013-09-05 Thread Ian Lea
I think that blog post was bleeding edge and the API changed a bit subsequently. I use Directory dir = whatever; SearcherManager sm = new SearcherManager(dir, new SearcherFactory()); to get default behaviour. The javadocs for SearcherFactory explain that you can write your own implementation

Re: Lucene Concurrent Search

2013-09-05 Thread David Miranda
Where I can initialize the SearchManager variable to after use it in the REST servlet to do research in the index? 2013/9/5 Ian Lea ian@gmail.com I think that blog post was bleeding edge and the API changed a bit subsequently. I use Directory dir = whatever; SearcherManager sm = new

Re: Lucene Concurrent Search

2013-09-05 Thread David Miranda
Hi, I'm trying to implement my code with SearchManager to make my app thread-safe. I'm follow this post: http://blog.mikemccandless.com/2011/09/lucenes-searchermanager-simplifies.html There is a class that implements SearchWarmer. I can't find this class in the Lucene library, what class is

Re: Lucene Concurrent Search

2013-09-05 Thread Ian Lea
I use a singleton class but there are other ways in tomcat. Can't remember what - maybe application scope. -- Ian. On Thu, Sep 5, 2013 at 4:46 PM, David Miranda david.b.mira...@gmail.com wrote: Where I can initialize the SearchManager variable to after use it in the REST servlet to do

Re: Lucene Concurrent Search

2013-09-05 Thread David Miranda
Did you have a practical example of the use of SearchManager (initialize, use to do research)? Thanks in advance. 2013/9/5 Stephen Green eelstretch...@gmail.com You can implement a ServletListener for your app and open the index there (in the contextInitialized method). You can then create

Re: Lucene Concurrent Search

2013-09-05 Thread Stephen Green
You can implement a ServletListener for your app and open the index there (in the contextInitialized method). You can then create the SearcherManager from the IndexReader/Searcher and store it in the ServletContext, where it can be fetched out by your REST servlets. This is a typical pattern that

Lucene Concurrent Search

2013-09-04 Thread David Miranda
Hi, I'm developing a web application, that contains a REST service in the Tomcat, that receives several requests per second. The REST requests do research in a Lucene index, to do this i use the IndexSearch. My questions are: - There are concurrency problems in multiple research? - What the best