C# 使用SqlCe创建和索引电子邮件数据库

C# 使用SqlCe创建和索引电子邮件数据库,c#,.net,email,sql-server-ce,database-schema,C#,.net,Email,Sql Server Ce,Database Schema,我正在创建一个简单的电子邮件客户端程序。我使用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消息

我正在创建一个简单的电子邮件客户端程序。我使用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消息存储为字节数组。但是,当我要对存储的消息执行搜索时,问题就出现了。我不知道如何在这个模式之上为消息编制索引

有谁能帮我推荐一个好但简单的模式,这样它在存储空间和搜索友好性方面也会很有效

问候,


一些注释,恐怕没有太大帮助:

  • 我相信rfc5322将电子邮件中任何一行的长度限制为999个字符。虽然可以将标题字段扩展到多行,但在我看来,这是消息id长度的合理上限
  • SQL CE不支持全文搜索,因此基本上您必须编写自己的搜索引擎。将文本切碎为单词,然后创建一个单词表,并与包含链接到的StorageId字段列表的字段配对。相当多的工作,而且你最好使用第三方解决方案
  • 考虑添加一个“父”字段,该字段根据线程的消息ID和回复/引用头将线程链接在一起
    谢谢你的答复,我会考虑你的意见。这是很有帮助的,但是你能给我推荐除了sqlce之外的任何好的用于全文搜索的嵌入式数据库吗?