我大约一年前在另一个网站上问过这个问题,但一直没有得到我想要的答案。从那以后我就一直在想这个问题。
我想实现一些类似于 Google 的搜索功能 (inurl:foo, site:bar.com)
因此,如果您输入一个普通查询,但不包含任何这些功能,它将搜索一列。
但是,如果您包含一个函数 (func:foo bar
),它将在第 1 列中搜索 foo,在第 2 列中搜索 bar。
在 PHP 和 MySQL 中有什么好的解决方案。此外,多个函数(func1:foo func2:bar query
)也不错。
最佳答案
我认为没有直接的方法可以做到这一点,但您可以编写脚本。 您的脚本首先解析搜索查询并找到特殊事件,如下所示:
preg_match_all("/([\w_]+):([\w_]+)/", $search_query);
然后您有特殊的搜索请求,假设您的用户请求 user:marvin tag:php comment:preg
。然后你知道上面的正则表达式你的用户想要看到评论或 marvin
标记为 php
并包括术语 preg
你可以构建相应地你的 sql 语句。
关于php - 类似谷歌的搜索功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1971644/