dev*_*ium 9 java algorithm intellij-idea string-algorithm
我正在开发一种类似于IDE的东西,它可以处理数以万计的非常大(文本)文件,我正在调查这个主题的最新技术水平.
作为一个例子,Intellij的标准(非正则表达式)表达式的搜索算法非常直接.他们是如何做到这一点的?他们只是在内存中保留所有可搜索文件的某种后缀树吗?他们只是将文件内容的很大一部分保存在内存中,这样他们只需要几乎完全内存的标准KMP来避免任何磁盘IO吗?
谢谢
Pet*_*mov 10
目前,IntelliJ IDEA索引项目中的文件,并记住哪些文件中出现了3克(3个字母或数字的序列).搜索时,它将查询分成3-gram,从索引中获取包含所有三元组的文件,与这些集合相交,并在每个文件中使用相对简单的文本搜索来检查它们是否真的包含整个搜索串.