簡體   English   中英

使用php搜索數百萬個字符串

[英]Search a string for millions of terms with php

我有一個字符串,我需要使用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加載並提供給Mysql。

這里不是用循環中的PHP進行搜索,而是可以使用mysql LIKE函數來搜索字符串。

例如: 城市中選擇城市LIKE %搜索文本%

如果你有更多的搜索文本,你可以使用OR開關或JOIN sql查詢來查找它們。

這將更快,您不需要60秒執行。

祝好運

- Sajith

我建議遵循:

  1. 使用關聯數組創建兩個查找表:單詞和術語,因此每個條目應代表單個單詞/術語
  2. 現在,您可以搜索內置復雜度為O(1)查找表

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM