0

在我当前的项目中,我需要索引来自多个邮箱的所有电子邮件及其附件。

我将使用 Solr,但我不知道构建索引结构的最佳方法是什么。我的第一种方法是:

<fields>
<field name="id" require="true"/>
<field name="uid" require="true"/>
//A lot of other fields
<dynamicField name="attachmentName_*" require="false">
<dynamicField name="attachmentBody_*" require="false">
</fields>

但现在我不确定它是否是最好的结构。我不认为我可以通过单个查询搜索一个术语(例如stackoverflow)并知道该术语在哪里(例如attachmentBody_1_2_3等)。

有人对我的索引结构有更好的建议吗?

4

2 回答 2

4

您可以将多值字段用于 attachmentName 和 attachmentBody。因此,您将拥有 2 个常规字段而不是动态字段。然后,您可以使用突出显示来带回与周围上下文匹配的特定值。

另一种选择是使每个附件成为一个单独的文档,并存储一些内容以识别它属于哪个电子邮件。这种方法的缺点是您可能需要多次索引电子邮件本身的任何数据。但是,如果大多数电子邮件消息都有多个附件,这实际上只是一个问题。

于 2009-04-03T17:13:16.503 回答
0

我找到了一种可能的解决方案。我需要做的就是将 attachmentBody 设置为已存储。

这个解决方案还不够好,因为索引的空间会急剧增加,但在我的情况下没有问题,因为我也会实现高亮功能并且需要存储这些字段。

于 2009-04-03T15:59:23.703 回答