Lucene QueryParser在多个线程中:每次同步或构造新的?

RTS*_*lio 5 java lucene thread-safety query-parser

我有一个Web应用程序,用户向Lucene索引提交查询.查询由Lucene解析 QueryParser.我学到了QueryParser非线程安全的困难方法.

是否更好地使用单个QueryParser实例,并同步调用其parse()方法?或者为每个查询构造一个新实例是否更好?(或者我可以通过一个QueryParsers 池更好地服务?)

我知道,一般来说,这样的问题取决于具体情况并需要剖析,但也许有人可以肯定地说" QueryParser建造"非常便宜/昂贵"?

Joe*_*oel 6

每次创建一个新的.这些是轻量级对象,JVM非常好地处理对象创建和垃圾收集.绝对不要使用对象池.