0

我正在创建一个简单的电子邮件客户端程序。我使用 MS SqlCe 作为电子邮件的存储。用于存储消息的数据库模式如下:

StorageId int IDENTITY NOT NULL PRIMARY KEY,
FolderName nvarchar(255) NOT NULL,
MessageId nvarchar(3999) NOT NULL,
MessageDate datetime NOT NULL,
StorageData ntext NULL

在 StorageData 字段中,我将 MIME 消息存储为字节数组。但是当我要对存储的消息进行搜索时,问题就出现了。我不知道如何在此架构之上索引消息。

谁能帮我提出一个好的但简单的模式,以便它在存储空间和搜索友好性方面也有效?

问候,

阿宁迪亚·查特吉

4

1 回答 1

1

一些笔记,恐怕不太有用:

  • 我相信 rfc5322 将电子邮件中任何单个行的长度限制为 999 个字符。虽然可以将标头字段扩展到多行,但在我看来,这是消息 ID 长度的合理上限。
  • SQL CE 不支持全文搜索,所以基本上你必须编写自己的搜索引擎。将文本分成单词,然后创建一个单词表,并与一个包含它们链接到的 StorageId 字段列表的字段配对。相当多的工作,您可能最好使用第三方解决方案
  • 考虑添加一个“父”字段,该字段根据消息 ID 和 In-Reply-To/References 标头将线程链接在一起。
于 2010-05-18T06:08:24.187 回答