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.