【问题标题】:Lucene Query.java doesn't support clone() method anymore?Lucene Query.java 不再支持 clone() 方法了?
【发布时间】:2017-05-30 10:32:09
【问题描述】:

我们曾经使用 Query.clone() 方法来获取原始查询的克隆,并在克隆的查询中覆盖重写方法。

现在我发现 Query 类不再可克隆。知道为什么要进行更改以及现在完成克隆操作的更好方法吗?

【问题讨论】:

    标签: lucene clone


    【解决方案1】:

    正如 5.4 中的弃用警告中所述,clone 仅对更改提升有用,因此它与 setBoostgetBoost 一起被删除。这三个都在 Lucene 5.4 中被弃用,并在 6.0 中被删除,或者为了使查询不可变(现在由 BoostQuery 处理提升)。有关完整讨论,请参阅 LUCENE-6590

    不过,我有点困惑。您声称您正在获取查询的克隆,然后在结果实例上覆盖重写方法?除非我在这里遗漏了什么,I don't believe that is possible. 如果您使用装饰器执行此操作,那么您没有理由仍然无法执行此操作,因为您实际上不需要克隆查询。

    【讨论】:

    • 我们没有使用 boost 来获取查询的克隆,我们只是用来获取查询的克隆并覆盖其重写方法以限制我们案例中的扩展大小
    • @DivyaMalini 你有没有找到解决这个问题的方法?我们也克隆并调用setRewriteMethod(...)
    猜你喜欢
    • 2023-02-20
    • 1970-01-01
    • 2022-01-04
    • 2014-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    相关资源
    最近更新 更多