PHP 中的全文搜索

Fulltext search in PHP

我想使用 PHP 对给定字符串中的给定短语执行全文搜索。

我希望此搜索为:

你能帮帮我吗? ...很抱歉创建了新的 post,在我询问之前,我已经搜索了很多。但是,我发现只有 post 与 PHP+MySQL 搜索有关。

你必须remove diacritics from string and then need to use preg_match

<?php
// The "i" after the pattern delimiter indicates a case-insensitive search
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
    echo "A match was found.";
} else {
    echo "A match was not found.";
}
?>

PHP 文档:http://php.net/manual/en/ref.pcre.php

对于全文搜索,我知道 2 个常见的解决方案:

  1. 使用 MYISAM FULLTEXT 索引http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html

因此,如果您有 InnoDB table,则必须将可搜索信息复制到 MYISAM table(例如使用触发器)

  1. 使用外部特殊搜索引擎。例如:

在 MYSQL 全文搜索中如何考虑 MYSQL Full-Text Search work is complex compared to PHP preg match. For example, stop words

如果您只需要依赖 PHP,(而不是库),您将需要进行一些开发。 Here's 一个像这样创建的流行库。