gpt4 book ai didi

java - 为什么 Query、TermQuery 等在 Lucene 4.0 中不再实现 Serialized?

转载 作者:行者123 更新时间:2023-12-01 18:56:51 26 4
gpt4 key购买 nike

我需要使用 EJB 通过网络发送一个包含 Lucene 元素(例如 Query)的类,当然这个类需要序列化。我将我的类标记为可序列化,但这似乎还不够:

org.apache.lucene.search.TermQuery is not Serializable

事实上,当我阅读 Lucene 最后一个稳定版本(4.0)的 javadoc 时,我可以看到 TermQuery 没有实现 Serialized,Query 也没有实现。我不明白的是为什么这些类在上一个版本(3.6.1)中用于实现 Serializable ,以及为什么不再是这样?

最佳答案

Mike McCandless, one of Lucene contributors以及 Lucene 4 变更日志说:

All serialization code has been removed from Lucene's classes; you must handle serialization at a higher level in your application.

实际提交是针对 JIRA 问题完成的 LUCENE-2908LUCENE-4037 。上一期的描述是这样的:

We removed contrib/remote, but forgot to cleanup serialization hell everywhere. this is no longer needed, never really worked (e.g. across versions), and slows development (e.g. i wasted a long time debugging stupid serialization of Similarity.idfExplain when trying to make a patch for the scoring system).

Lucene 并不是唯一一个考虑放弃序列化的人。例如 Guava considered这也是。

谈论您的问题 - 您应该能够始终将查询转换为字符串表示形式(使用 .toString())并返回。除非您每秒执行此操作一百万次,否则开销应该可以忽略不计。

关于java - 为什么 Query、TermQuery 等在 Lucene 4.0 中不再实现 Serialized?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13699209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com