【发布时间】:2012-01-23 05:48:14
【问题描述】:
我正在使用 Lucene 3.5.0 在我的网站上做一些基本的搜索工作。我想将索引存储在 Mysql 数据库的 JDBC 目录中。我打算使用 Compass 项目来执行此操作,但经过更多研究并实际尝试了代码,我发现 Compass 是一个死项目,它不再与当前版本的 Lucene 兼容。
还有其他选项可以将我的索引存储在 JDBC 目录中吗? Lucene 不提供这个原生是有原因的吗?出于某种原因,在 HDD 上存储是更好的选择吗?
【问题讨论】:
-
什么是 JDBC 目录?为什么要将它放在数据库中?
-
JDBC Directory 是 Compass 用来在数据库中创建表来存储索引的方法。老实说,我想解决这个问题,因为它看起来更容易,除了我无法让它工作之外,似乎存储索引数据库的最佳位置是在数据库本身中。如果目录是更好的选择,我可以相信否则。
-
啊,我误会了;谢谢。不过,不确定如何更容易。此外,数据库索引和操作似乎会针对不同类型的问题进行调整。
-
Compass 项目中的 JDBCDirectory 实现仍然运行良好(在现代 Java 中)。为一项新服务实施,并对这些选项印象深刻。不过,请注意在数据库层完成的默认锁定实现。因此,它似乎有无数的问题,即废弃的锁和更新时系统无法访问。但是,通过实施单写策略(自己锁定)是一种配置选项并解决了问题。