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.