php - 类似谷歌的搜索功能

标签 php mysql full-text-search

我大约一年前在另一个网站上问过这个问题,但一直没有得到我想要的答案。从那以后我就一直在想这个问题。

我想实现一些类似于 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/

相关文章:

database - SQL Server 2008 问题上的全文搜索实现

php - 自动为列中的重复值分配相同的 ID

PHP Azure OAuth JWT 应用程序角色

PHP/MySQL - 错误 --> '' 中的未知列 'field list'

mysql - 这个查询可以优化吗?

solr - Solr 入门

php - 全文搜索 MySQL

php - MySQL 子查询多个结果

php - 加速创造 future 记录

php - 在类里面使用 PDO