我想使用Lucene.net来索引来自各种来源(例如本地文件系统和数据库)的数据。但是,我想链接来自两个来源的数据(基于公共字段,例如ID),并将组合信息显示给用户。据我所知,我有三种选择。索引每个来源后:
选项1是我想要做的,但我不确定Lucene的可行性有几个原因:
我选择2的唯一原因是,如果我相信我可以创建一个比选项1更有效的算法。遵循这条逻辑线,我必须质疑我是否应该使用Lucene关联数据。
这引导我进入选项3.我很高兴它会起作用,但这似乎是一种妥协:
有什么建议吗?
答案 0 :(得分:5)
是的,你可以,但你需要停止思考关系并开始考虑文档而不是行。或者,选项3是正确的方法。你想要做的是创建一个文件:
a)无论我想搜索什么 - 用lucene术语分析的字段
b)指向完整的,现存的记录 - 基本上是ID号或文件位置
c)如果可能的话,有足够的东西来显示搜索结果,而不必以lucene的说法与文件系统或数据库存储的字段联系。
在性能方面,不会有太多开销或过载。动态地向索引添加内容并不是一个很大的性能影响,而且lucene本身的速度非常快。我会以合理的,组件化的方式构建它,然后在需要时深入了解性能。