PHP根据任意搜索查询搜索电子邮件数据库以查找电子邮件地址和正文内容

时间:2013-06-01 01:49:14

标签: php mysql email search full-text-search

我正在处理电子邮件应用程序。这是背景:

  • Emailaddresses存储在addresses
  • 消息内容存储在message_contents

页面顶部有一个搜索栏,操作流程将是用户输入以下内容,例如:Jonathan Kushner programming并且它会向下钻取到基本上在这种情况下的点它找到了一个电子邮件,其中包含Jonathan Kushner的地址和邮件正文中的单词编程。

这就是问题所在。目前,我正在针对与用户查询匹配的电子邮件地址执行MySQL LIKES,以及针对与用户查询匹配的邮件内容执行MySQL LIKES。问题是,就我们的示例而言,它永远不会找到与Jonathan Kushner programming匹配的电子邮件地址,并且它不会匹配任何说Jonathan Kushner programming的正文内容。

所以,说到这一点,我需要完成的是能够以某种方式识别查询输入并发现什么是名称和什么是身体内容。我无法理解我是世界上第一个将地址与数据库中的正文内容分开的人,所以它肯定是可能的。

也许我应该设置它,以便用户必须在查询的第一个单词中键入名称或电子邮件地址,然后在X单词之后,他们能够键入内容中的关键字。我真的不喜欢这个想法,它无法工作,因为如果用户没有名称或电子邮件地址来搜索整个理论被破坏,但我只是不知道如何解决这个问题。

另一个想法是可能将单词分开并对每个单词和单词组合执行逻辑。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

我为电子商务搜索功能做了类似的事情,我将这些词分开,然后使用循环将单词添加到查询中。

WHERE address LIKE '%$search[0]%' OR address LIKE '%$search[1]%' OR contents LIKE '%$search[0]%'

希望这很有用,我会讨论一些查询,看看在跳转到代码之前有什么用处。当您启动代码时,我建议将搜索查询拆分为一个单词数组,然后使用foreach循环将它们添加到查询中。

玩得开心,让我知道你是怎么过的!