我想使用Lucene索引现有数据库中的表。我一直在思考的过程是这样的:Lucene索引
- 在表
- 商店每列创建一个“场”的所有字段
- “分析”所有的,除了与主键字段的字段
- 将表中的每一行作为Lucene Document存储在表中。
尽管此表中的大多数列都很小,但其中一个很大。该列也是包含执行搜索的大部分数据的列。
我知道Lucene提供了一个不存储字段的选项。我想两种解决方案:
- 存储领域,无论大小,并且如果找到命中的搜索,从文件读取相应的字段
- 不要存放场及如果命中发现搜索,查询数据库来获得相关信息进行
我知道有可能不是一个放之四海而皆准的答案...
对帕斯卡的回应+1。你也可以标记大字段并*不存储*它。通过这种方式,您可以在字段上查询(搜索),获取相关文档/记录标识符并从数据库中检索记录。 – Mikos 2010-07-14 00:20:11
感谢您的回复。 如果我选择不存储任何字段,我也将无法使用突出显示(Lucene contrib模块)来突出显示搜索结果? – 2010-07-14 16:27:07
可以在不存储文本的情况下完成,但这不是简单的方法。参见http://www.lucidimagination。com/search/document/5ea8054ed8348e6f/highlight_arbitrary_text#60f592f5ff0de0c5 – 2010-07-14 16:37:02