哪种开发语言对文件操作性能最高

先确认一个问题:关键字命中是指查询词在|分隔符分割的片段中存在即可?还是说完全匹配?看你的代码的话其实是存在即可的。
不过无论怎么看,严格的说你的问题需求似乎并不是做个全文索引。看描述似乎也无关乎分词(毕竟存在就算,例如临水傍山三百寺,要是询问个山三,似乎也该找到的样子,毕竟你的代码里就是这么干的)。

【哪种开发语言对文件操作性能最高】 你的做法非常慢……简单的说,对每一次查询,你都打开文件,然后分行拆分隔符然后用正则去找,最多是加了个问询的缓存,这其实是非常不好的实现方法。
既然规定不用中间件和任何外部服务,当然就要自己实现索引。对于大量字符串求匹配的问题主要包含两类,一类是做DFA或Trie或其它搜索树,另一类是做Hash。
数据规模不大,1000k条文字记录,每条撑死也就几百字,一个几百兆到一两个GB的文件而已,还用不上redis,因为就靠Python自己的内存管理都足够了,这年头总不至于一台电脑没个4GB内存。加上所有记录就一静态文件,在启动Flask之前先把需要的玩意索引好就好,当然也可以单独起个process来做索引。
至于做索引,这个规模用Trie和Hash其实都差的不太多,前者内存友好但是时间复杂度的常系数大一点儿;后者吃内存多一点但是复杂度的常系数稍低。两者都能做成一边索引一边提供查询的能力,总的时间复杂度也都是O(n*m^2),其中n是总文字长度,m是单条片段的最大长度,加一点小优化,如果数据也不是太夸张的每个片段都是最大的200长度,索引个几十秒也就差不多完事了。

■网友
哪种开发语言对文件操作性能最高


你这个问题,用嵌套循环,肯定效率不高的。
要用中文分词和全文检索的技术去提高速度。
自己搜中文全文检索吧。去看这本书,280页,有小型全文检索的算法。

哪种开发语言对文件操作性能最高


■网友
如果题主第二个禁止使用的条件去掉的话,建议参考下 flask_whooshalchemyplus + jieba的解决方案
■网友
这个其实是一个讨论题,稍后会用Java,Python,Node三种语言来实现,50万条,考虑网络和IO消耗,会在10ms内完成。


    推荐阅读