PHP中的全文搜索

时间:2015-01-30 14:45:05

标签: php full-text-search

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

我希望此搜索为:

  • 不区分大小写
  • 变音符号不敏感,所以例如“Žluťoučkýkůň”应该匹配为“Zlutoucky kun”
  • 尽快
  • 独立于任何第三方图书馆(如果可能)
你能帮帮我吗? ...我很抱歉创建新帖子,在我问之前我已经搜索了很多。但是,我发现只有关于PHP + MySQL搜索的帖子。

3 个答案:

答案 0 :(得分:1)

您必须remove diacritics from string然后需要使用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

答案 1 :(得分:1)

与PHP MYSQL Full-Text Search相比,preg match的工作方式很复杂。例如,在MySQL全文搜索中考虑使用stop words

如果您只需要依赖PHP(并且不需要库),则需要进行一些开发。 Here's这样创建的流行库。

答案 2 :(得分:0)

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

  1. 使用MYISAM FULLTEXT索引http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html
  2. 因此,如果您有InnoDB表,则必须将可搜索信息复制到MYISAM表中(例如使用触发器)

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