C# 使用SqlCe创建和索引电子邮件数据库
我正在创建一个简单的电子邮件客户端程序。我使用MS 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消息
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之外的任何好的用于全文搜索的嵌入式数据库吗?