【发布时间】:2012-01-16 21:25:31
【问题描述】:
我有一个字符串,我需要使用 php 搜索以查看是否存在 2-3 百万个术语。字符串可以有 1000 个字长,搜索词最多可以有 5 个字长。
我试过 strpos 和 strstr 但执行时间超过 60 秒。
谁能提出替代方案?
到目前为止,我有以下内容:
$query = "SELECT City FROM cities";
$result = mysql_query($query);
if ($row = mysql_fetch_array($result)) {
do {
$city = " " . $row['City'] . " ";
if(strpos($string, $city)!== False) {
echo $city . "<br />\n";
}
} while ($row = mysql_fetch_array($result));
}
【问题讨论】:
-
条款存储在哪里?它们是否在数据库中并且您正在查询它们?
-
也许添加更多关于你想要做什么而不是你如何做的信息。
-
我添加了更多细节。
-
您将全文搜索添加为标签。但是,你为什么不这样做???
-
为什么要从数据库中加载数据并在 PHP 中执行搜索?一百万个这样大小的条目很可能会占用 200 多兆的内存来在 PHP 中存储这样的数组。然后,您依次遍历每条记录并执行“搜索”。当然慢!使用您的数据库过滤掉结果,这就是它的用途。