【问题标题】:How does one implement storage/retrieval of smart-search/mailbox features?如何实现智能搜索/邮箱功能的存储/检索?
【发布时间】:2010-05-31 06:04:02
【问题描述】:

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

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

SUBJECT:消息、收件人地址、发件人地址、主题、接收日期
动词:包含、dos_not_contain、is_equal_to、greater_than、less_than
对象:??????


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

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

任何意见将不胜感激。如果问题有点不连贯,我很抱歉。时间不早了,我的脑子都吐了。

最好的。

【问题讨论】:

    标签: database-design data-structures full-text-search data-storage data-retrieval


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2021-01-08
      • 2022-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-18
      • 1970-01-01
      相关资源
      最近更新 更多