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

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

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

我知道,一般来说这样的问题取决于具体情况并要求分析,但也许有人可以明确地说“ QueryParser的构建非常便宜/昂贵”?

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