java - 我会在从 v3 迁移到最新 v7 的迁移 lucene 索引中获得性能改进吗
问题描述
我们的应用程序是索引书籍。当我们索引时,磁盘上的大小约为 1GB。当我们搜索时,大约需要 12-18 秒。
此应用程序是使用 Lucene 3.xx 构建的,如果我迁移到 Lucene 7.xx,我会获得性能改进吗?
我问是因为应用程序非常大,分离这部分功能是一项非常艰巨的任务,因此需要有经验的人的帮助。
我还看到代码中使用的许多类在 Lucene-7 中不可用。我该如何迁移?我是否需要像 v3 -> v4 -> v5 -> v6 -> v7 那样进行增量迁移?
解决方案
我会看到迁移到 Lucene 7.0 的性能改进吗
不可能肯定地说,但很可能你会。自 Lucene 3 以来,性能有了相当大的改进。您可以浏览Lucene 基准测试,向后滚动,您将看到自 v3.0 以来的大部分改进。
这是否足以改善是另一个问题。您应该首先查看的是,如果您使用的查询通常表现不佳,以及如何才能做得更好。如果您使用大量领先的通配符查询,那么更新版本的 Lucene 不会神奇地将您从自己手中拯救出来。
我该如何迁移?
自 Lucene 3 以来的 7 年里发生了很多变化。获取阅读器或编写器发生了变化,甚至文档和字段的工作方式也不尽相同!最好的办法是熟悉迁移指南,其中列出了可能会破坏您的代码的更改,以及如何处理它们:
我是否需要进行增量迁移
有这么多版本要通过,如果可能的话,我宁愿重新索引,但如果这不是一个选项,是的,你需要一次升级你的索引一个主要版本。您需要使用命令行IndexUpgrader工具来执行此操作,并且它仅从上一个主要版本升级。所以,是的,您需要下载 lucene 4,运行 IndexUpgrader 以获得 4.0 索引,然后使用 Lucene 5 重复,等等。
推荐阅读
- java - Spring Boot JPA Hibernate - 以毫秒精度存储日期
- python - 烧瓶中的表单动作未重定向到路线
- python-3.x - 拥抱脸的 Microsoft LayoutLM 模型错误
- groovy - (Groovy) 向 ArrayList 添加多个值
- sdn - Opendaylight 铝制与 mininet 圆环
- html - 网页抓取 - h1 - 字体访问问题
- r - 从使用 stat_summary 生成的图中删除点
- javascript - 如何编写将计算日期并更改表格颜色的JS?
- java - put not working on android Volley org.json.JSONException: End of input at character 0 of
- multithreading - 编写测试以在多线程环境中使用 Kafka 消费者