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 would be very expensive. You need to create it once globally and re opon it, if the index is modified. Its better use SearchManager. Regards Aditya www.findbestopensource.com - Search from 1 Million open source projects. On Thu, Sep 5, 2013 at 6:46 AM, David Miranda <david.b.mira...@gmail.com>wrote: > 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 design pattern to do this? > > public class IndexResearch(){ > > private static int MAX_HITS = 500; > > private static String DIRECTORY = "indexdir"; > > private IndexSearcher searcher; > > private StandardAnalyzer analyzer; > > > > > > > public IndexResearch(){ > > } > > public String doSearch(String text){ > > analyzer = new StandardAnalyzer(Version.LUCENE_43); > > topic = QueryParser.escape(topic); > > Query q = new QueryParser(Version.LUCENE_43, "field", analyzer > > ).parse(text); > > File indexDirectory = new File(DIRECTORY); > > IndexReader reader; > > reader = DirectoryReader.open(FSDirectory.open(indexDirectory)); > > searcher = new IndexSearcher(reader); > > > /*more code*/ > > > } > > } > > > Can I create, in the servlet, one object of this class per client request > (Is that the best design pattern)? > > Thanks in advance. >