在lucene中索引数据库记录

时间:2010-12-09 05:43:43

标签: java lucene

我希望在lucene中为我们的应用程序的几个数据库索引数据。如何构建索引? 每个表的索引,以便列是字段,数据是值? 或者每个数据库的索引,带有lucene的diff字段的变量表列? 如果没有,那么如何构建索引,以便搜索和维护不会复杂?假设每个数据库有100个表,每个表有10K行。

1 个答案:

答案 0 :(得分:0)

它完全取决于底层数据,以及您想如何查询它,并且在不知道这一点的情况下无法提供明确的答案。

如果您的数据库模式已规范化,那么我想要对其进行非规范化以创建一个记录,该记录由每个文档的多个表中的表数据组成。

确定分配给文档的字段的另一个因素是您要查询数据的方式。

例如,给定以下规范化架构:

TABLE:AUTHOR        COLS:AUTHOR_ID,NAME
TABLE:BOOKS         COLS:BOOK_ID,TITLE,CONTENT
TABLE:AUTHOR_BOOKS  COLS:AUTHOR_ID,BOOK_ID

您可以为每位作者/书籍索引单个文档:

Document (field1:author, field2:title, field3:content)

这样您就可以按作者,标题或内容搜索图书匹配。