0

我有大量字符串(可能超过 1,000,000 个),我想搜索另一个字符串(文档)以查看其中哪些搜索字符串出现在文档中。

并不是所有的搜索字符串都是一个单词,所以这不仅仅是在搜索字符串列表中搜索文档中的每个单词的情况。

这样做最有效的方法是什么?

我将对大量文档(来自提要)执行此操作,并且需要以足够快的速度执行此操作,以便我可以比传入的文档更快地处理文档(理想情况下最多一两秒)。

我可能会想出一个不会出现在搜索字符串中的停用词列表(例如“the”、“and”)。

理想情况下,解决方案将使用 Java,但这不是必需的,因为我总是可以将代码移植到 Java 中。如果有任何区别,搜索字符串当前存储在 MongoDB 中。

4

2 回答 2

2

看看基数树后缀树

concurrent-trees项目中有一个示例,说明如何有效地扫描未见过的文档以查找存储在该项目的倒置基数树中的大量关键字。示例代码在这里

于 2013-09-13T12:22:29.423 回答
2

查看高性能模式匹配算法 Java

于 2013-11-05T16:08:33.367 回答