Lucene中的多个或单个索引?

时间:2010-04-30 17:54:39

标签: lucene

我必须索引应该一起搜索的不同类型的数据(文本文档,论坛消息,用户配置文件数据等)(即,单个搜索将返回不同类型数据的结果)。

  • 拥有多个索引有哪些优缺点,每种类型的数据都有一个?

  • 为所有类型的数据提供单一索引的优缺点?

谢谢。

3 个答案:

答案 0 :(得分:5)

如果您想通过一次搜索搜索所有类型的文档,最好保留所有文档 类型到一个索引。在索引中,您可以定义要对其进行Tokenize或Vectore的更多字段类型。 需要一段时间才能为每个IndexSearcher引入一个包含indeces的目录。

如果您想单独搜索术语,最好将每种类型索引到一个索引。 单个索引比多个索引更具结构性。

另一方面,我们可以平衡我们的加载与多个indeces。

答案 1 :(得分:2)

不一定回答你的直接问题,但......;)

我会使用一个索引,为该类型添加一个关键字(索引,存储)字段,它会让您根据需要进行过滤,并告诉您收到的结果之间的差异。

(并且可能在你的问题的基础上......使用单独的索引将允许每个语料库拥有它自己的相关性分数,不知道一个语料库中过度重复的术语是否会摒弃其他语料库的相关性?)

答案 2 :(得分:1)

您应该从逻辑上考虑每个数据集包含的内容,并按主题或其他标准(如地理位置,业务单位等)设计索引。作为一般规则,您的索引体系结构与数据库的方式类似(例如,即使技术上可行,您也可能不会将会计与人员数据库结合使用)。

正如@llama指出的那样,创建单个超级索引会影响相关性得分,安全性/访问问题等,并导致一系列新的麻烦。

总结:根据您的业务需求考虑逻辑分区结构。没有进一步的背景,很难解释。