njr*_*101 15 c# sorting string search contains
我有一个大约的列表.500,000根弦,每根约.100个字符长.给定一个搜索词,我想识别列表中包含搜索词的所有字符串.目前,我使用Select方法("MATCH%term%")使用普通旧数据集执行此操作.我的笔记本电脑大约需要600毫秒.我想让它更快,也许100-200ms.
什么是推荐的方法?
性能至关重要,因此我可以在必要时(在合理范围内)交换内存占用以获得更好的性能 一旦初始化,字符串列表就不会改变,因此计算哈希值也是一种选择.
有没有人有推荐,哪种C#数据结构最适合这项任务?
Str*_*ior 17
在执行快速全文搜索时,我听说过Lucene.NET的好消息.他们已经完成了找出最快的数据结构等工作.我建议给他一个机会.
否则,您可能会尝试这样的事情:
var matches = list.AsParallel().Where(s => s.Contains(searchTerm)).ToList();
Run Code Online (Sandbox Code Playgroud)
但它可能不会让你下降到100毫秒.