我在内存中有几兆字节的文本,存在一个二维数组中,其中第一列是行号,第二列是文本本身。 我想找到一个现成的解决方案,可以传递这种数据结构(它是可塑的)和一个布尔搜索查询,最好带有通配符,并找出哪些行包含匹配项。 是否有任何API可以做到这一点? 我不想使用像Lucene这样的东西,因为我不想麻烦地建立索引。 我基本上想枚举字符串集合并返回那些与传入的查询有命中的字符串。
如果你只是加载数据、搜索一次,然后丢弃它,那么最好按照上面评论中建议的使用LINQ+RegEx路线。也就是说,你可以在第一次通过数据时进行搜索,而不是进行索引再搜索索引,就像搜索引擎所做的那样。但是,如果你要加载数据一次,然后重复搜索它,那么最好使用搜索引擎。如果你仍然不想使用Lucene.Net,一个带有全文搜索的内存System.Data.Sqlite数据库也可以很好地工作。
foreach
还是 LINQ + RegEx? - Ondrej TucnyWhere
接受一个布尔表达式。 - Magnus