gpt4 book ai didi

java - 一种具有数万个非常大文件的 IDE 使用的快速子字符串搜索算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:00 24 4
gpt4 key购买 nike

我正在开发与 IDE 非常相似的东西,它将处理数万个非常大的(文本)文件,并且我正在调查该主题的最新技术水平。

例如,Intellij 的标准(非正则表达式)表达式搜索算法非常直接。他们如何做到这一点?他们只是在内存中保留所有可搜索文件的某种后缀树吗?他们是否只是将文件内容的很大一部分保留在内存中,以便他们几乎完全在内存中执行标准 KMP 以避免任何磁盘 IO?

谢谢

最佳答案

目前,IntelliJ IDEA 对项目中的文件进行索引,并记住哪些 3-grams(3 个字母或数字的序列)出现在哪些文件中。搜索时,它也将查询拆分为 3-grams,从索引中获取包含所有这些 trigrams 的文件,将这些集合相交,并在每个文件中使用相对简单的文本搜索来检查它们是否真的包含整个搜索字符串。

关于java - 一种具有数万个非常大文件的 IDE 使用的快速子字符串搜索算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39321448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com