2010-04-30 109 views
13

我必须对应该一起搜索的不同类型的数据(文本文档,论坛消息,用户简介数据等)进行索引(即,单次搜索将返回不同类型数据的结果)。Lucene中的多个或单个索引?

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

  • 对于各种数据有单一索引的优点和缺点?

谢谢。

回答

2

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

我会用一个指标去,添加关键字(索引,存储)字段的类型,如果需要,它会告诉你过滤,并告诉你收到的结果之间的差异。

(也许在你的问题使用单独的索引将允许每个语料库有它自己的relevency得分,不知道是不是在一个语料库过度重复条款将甩开别人文档相关静脉...? )

1

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

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

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

5

如果要用一次搜索搜索所有类型的文档,最好将所有 类型保留为一个索引。在索引中,您可以定义更多需要Tokenize或Vectore的字段类型。 需要一段时间才能向每个IndexSearcher介绍一个包含indeces的目录。

如果要单独搜索条件,最好将每种类型索引到一个索引。单指数比多指数更具结构性。

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