什么样的算法+数据结构可以帮助我做到这一点?
使文件包含在有序集中的内存中加载10000~行的行.使用给定的搜索字符串,我希望能够获得所有具有在搜索字符串中找到的单词前缀的单词的行.那么让我举一个例子来澄清这个:
"眉毛狐狸飞了."
"狗讨厌鹰","海豚有眼睛和teath"
(对我来说足够快,花了大约30ms~(包括对最终结果进行排序)在我的电脑上一组10k行每行3个字)
我想你可能想要的是一个trie。为文档中所有单词的集合构造一个,并让每个叶子指向一个哈希集,该哈希集包含叶子键出现的行的索引。
要执行搜索,您将使用搜索字符串的每个片段导航到树中的一个节点,并对该节点的子树中所有叶子的哈希集进行并集。然后,您将这些并集与片段集相交,以获得满足搜索字符串的行列表。