PHP 中的全文搜索
Fulltext search in PHP
我想使用 PHP 对给定字符串中的给定短语执行全文搜索。
我希望此搜索为:
- 不区分大小写
- 变音符号不敏感,因此例如“Žluťoučký kůň”应匹配为 "Zlutoucky kun"
- 越快越好
- 独立于任何第三方库(如果可能的话)
你能帮帮我吗? ...很抱歉创建了新的 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.";
}
?>
对于全文搜索,我知道 2 个常见的解决方案:
- 使用 MYISAM FULLTEXT 索引http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html
因此,如果您有 InnoDB table,则必须将可搜索信息复制到 MYISAM table(例如使用触发器)
- 使用外部特殊搜索引擎。例如:
在 MYSQL 全文搜索中如何考虑 MYSQL Full-Text Search work is complex compared to PHP preg match. For example, stop words。
如果您只需要依赖 PHP,(而不是库),您将需要进行一些开发。 Here's 一个像这样创建的流行库。
我想使用 PHP 对给定字符串中的给定短语执行全文搜索。
我希望此搜索为:
- 不区分大小写
- 变音符号不敏感,因此例如“Žluťoučký kůň”应匹配为 "Zlutoucky kun"
- 越快越好
- 独立于任何第三方库(如果可能的话)
你能帮帮我吗? ...很抱歉创建了新的 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.";
}
?>
对于全文搜索,我知道 2 个常见的解决方案:
- 使用 MYISAM FULLTEXT 索引http://dev.mysql.com/doc/refman/5.5/en/fulltext-search.html
因此,如果您有 InnoDB table,则必须将可搜索信息复制到 MYISAM table(例如使用触发器)
- 使用外部特殊搜索引擎。例如:
在 MYSQL 全文搜索中如何考虑 MYSQL Full-Text Search work is complex compared to PHP preg match. For example, stop words。
如果您只需要依赖 PHP,(而不是库),您将需要进行一些开发。 Here's 一个像这样创建的流行库。