【问题标题】:Most efficient way to run a check against a large number of words对大量单词进行检查的最有效方法
【发布时间】:2015-11-20 08:16:53
【问题描述】:

我正在运行一个教育软件应用程序。在阅读文本部分,我想识别单词列表中的单词,并为这些单词输出一个弹出悬停。单词列表中有大约 30,000 个单词。我可以把它放到一个 MySQL 表中~~或者....有没有更有效的方法?

特别是在效率方面,我的意思是减少我的服务器负载。如果阅读文本有 500 个单词,那么大约需要 400 次 MySQL 调用来检查每个单词(在使用较小的数组消除基本单词之后。)

【问题讨论】:

    标签: php mysql database apache sqlite


    【解决方案1】:

    如果您只是想比较用户传递的所有单词,您也可以将所有单词放在一个变量中(不是数组!在一行文本中),然后使用 strpos 找到它们。我认为它会非常快!

    $mywords = "word1 word2 word3 word4 ....... word40000"; 
    $userWords = array('word2','other'); 
    foreach($userWords as $word) {
        if(strpos($mywords, $word)!==false)
        {
            // you found a word!
        } 
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-13
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 2015-12-14
      • 2012-11-01
      相关资源
      最近更新 更多