|
|
1
1
我相信,您正在尝试的优化版本被广泛称为Unix/Linux实用程序“grep”,如果我没有记错的话,它使用了Boyer-Moore搜索算法。 在封面下,Java的Pattern类使用Boyer-Moore。而且它支持正则表达式,所以如果您可以编写一些东西来将通配符搜索模式转换为正则表达式,则可以使用Pattern。 这里有一个有趣的grep Java实现 http://www.java2s.com/Code/Java/Regular-Expressions/AnotherGrep.htm 它使用内存映射文件。我猜你无法将整个单词列表放入内存,但你可以将其拆分为一堆较小的文件——内存上面的实现一次映射一个文件。您必须进行一些测试以找到文件的最佳大小。 |
|
|
2
0
我刚刚在谷歌上搜索了一下,发现将第二个列表按字母顺序倒排可能是一种方法,然后将前导通配符变为尾随通配符,从而为模式开始的二进制搜索打开了大门。有趣的但是
我刚刚发现了Apache Lucene:
|
|
|
projun14 · 使用JSch LS方法列出带问号的目录 8 年前 |
|
|
Olivia · 存储过程中日期参数的SQL通配符 8 年前 |
|
|
SeanY · 在Where子句条件内,如通配符函数? 8 年前 |
|
|
tyrande · 排除包含字符串“x”的通配符 8 年前 |