我对智能搜索功能的实施有疑问。例如,在各种电子邮件应用程序中考虑类似“智能邮箱”的内容。假设您将数据(电子邮件)存储在数据库中,并且根据要为其创建查询的字段,您向最终用户提供不同的选项。现在让我们假设主语,动词,对象方法......
例如,假设你有以下内容:
SUBJECTs:message,to_address,from_address,subject,date_received
VERB:包含,does_not_contain,is_equal_to,greater_than,less_than
对象:???????
现在,如果不清楚,我想要一个表结构(虽然我不反对某种外部XMLesque文件)来存储(以及后来检索/呈现)我的智能搜索/邮箱标准供以后使用。例如,使用SVO我可以轻松存储然后重建“两个日期之间的日期”的查询 - 只需使用“日期大于”AND“日期小于”。但是,如果在同一个智能搜索中,我想要“另一个”与另一个标准“或”?您可以看到它可能失控 - 不一定在查询创建中(因为这相当简单),但在选项表示和存储机制中。
也许我需要在更细粒度的层面上思考更多。也许我需要简单地允许用户独立地为每个条目选择AND或OR,而不是使其成为ALL或NOTHING类型的智能搜索(即代替MATCH ALL或MATCH ANY,我需要简单地允许他们选择 - 我只是不要让它变成水)。
任何输入都将非常受欢迎。如果问题有点不连贯,我道歉。已经很晚了,我的大脑就是吐司。
最佳。
答案 0 :(得分:0)
最简单的方法是将所有邮箱信息存储在SQL数据库中,并将“主题谓词对象”转换为SQL“where”子句。然后让SQL查询编译器为您完成工作。
这就是Apple在Mail.app中所做的事情,它使用sqlite数据库来存储所有邮件头信息。