我希望在lucene中为我们的应用程序的几个数据库索引数据。如何构建索引? 每个表的索引,以便列是字段,数据是值? 或者每个数据库的索引,带有lucene的diff字段的变量表列? 如果没有,那么如何构建索引,以便搜索和维护不会复杂?假设每个数据库有100个表,每个表有10K行。
答案 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)
这样您就可以按作者,标题或内容搜索图书匹配。