0

我对智能搜索功能的实现有疑问。例如,考虑各种电子邮件应用程序中的“智能邮箱”之类的东西。假设您将数据(电子邮件)存储在数据库中,并且根据将为其创建查询的字段,您向最终用户提供不同的选项。现在让我们假设主语、动词、宾语的方法……</p>

例如,假设您有以下内容:

SUBJECTs:message、to_address、from_address、subject、date_received
动词:contains、does_not_contain、is_equal_to、greater_than、less_than
对象:???????


现在,如果不清楚,我想要一个表结构(尽管我不反对某种外部 XMLesque 文件)来存储(并稍后检索/呈现)我的智能搜索/邮箱标准以供以后使用. 例如,使用 SVO,我可以轻松地存储然后重构“两个日期之间的日期”的查询—​​—只需使用“日期大于”和“日期小于”。但是,如果在同一个智能搜索中,我想要一个“介于”或与另一个标准相结合的结果呢?您可以看到它可能会失控——不一定在查询创建中(因为这相当简单),

也许我需要在更细粒度的层面上进行更多思考。也许我需要简单地允许用户为每个条目独立选择 AND 或 OR,而不是使其成为 ALL OR NOTHING 类型的智能搜索(即,而不是 MATCH ALL 或 MATCH ANY,我需要简单地允许他们选择——我只是不想让它变成九头蛇)。

任何输入将不胜感激。如果问题有点不连贯,我很抱歉。已经很晚了,我的大脑已经吐司了。

最好的。

4

1 回答 1

0

最简单的方法是将所有邮箱信息存储在 SQL 数据库中,并将“主语动词对象”转换为 SQL“where”子句。然后让 SQL 查询编译器为您完成工作。

这就是 Apple 在 Mail.app 中所做的,它使用一个 sqlite 数据库来存储所有的邮件头信息。

于 2010-06-06T07:44:50.193 回答