我想实现一个字典来搜索单词及其变形。 词典大小约为60MB,存储在txt文件中。
目前,我正在将整个字典 (60MB) 传递给一个变量,然后搜索有趣的词。我无法抗拒一种不正确的方式的印象(为字典分配 60MB 的内存)
有人可以推荐其他解决方案吗?也许还有其他一些方法可以在文件中搜索有趣的短语而不用将文件的全部内容存储到内存中?或者可能将整个字典放入 MySQL 数据库中会有所帮助(我可以将该字典切片并将每个单词放入带有附加 ID 的数据库中以识别来自同一根的不同单词之间的变形)
最佳答案
当然,将字典放入数据库中会有所帮助。由于内部索引和作为守护进程驻留在系统内存中,数据库工作得更快;使用查询搜索词形变化也会更简单、更快和更有效:
SELECT * FROM 字典 WHERE word LIKE "devel%"
会让你得到“开发”、“开发者”、“开发”等。还有很多其他的可能性。唯一的缺点是您必须安装数据库服务器。另一方面,如果 20 个用户同时连接,将整个 txt 文件加载到内存中将消耗超过 1GB 的内存,因为脚本每次都重新启动。
关于php - 字典搜索词 - 在 PHP 和 MySQL 中的最佳性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10759670/