在我当前的项目,我需要指数从多个邮箱的所有电子邮件及其附件。

我将使用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>

但现在我真的不知道,如果它是最好的结构。我不认为我可以搜索一个词语(如计算器的),并知道在哪里术语是(例如, attachmentBody_1 的或 _2 _3 等)与一个单一的查询。

任何人有更好的建议,以我的索引的结构?

有帮助吗?

解决方案 2

我发现的一种可能的解决方案。所有我需要做的是设置attachmentBody作为存储。

此解决方案是不够的,因为该指数的空间将显着增加,但在我的情况是没有问题的,因为我将实现大亮点功能,也和这些领域需要储存。

其他提示

您可以使用ATTACHMENTNAME和attachmentBody多值字段。所以,你将有2场常规,而不是动态的领域。然后,可以使用突出显示带回与周围的上下文相匹配的特定的值。

另一种选择是,使每个连接一个单独的文档,和存储的东西,以确定它属于哪个电子邮件。这种方法的缺点是,你可能需要指数从电子邮件本身几倍的任何数据。但是,这是真的只有一个问题,如果大部分的电子邮件有多个附件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top