我想在我的应用程序中创建一个快速搜索。
假设我有一个类:
public class Venue
{
public virtual string LongName { get; set; }
public virtual string ShortName { get; set; }
public virtual string Market { get; set; }
public virtual int ClientEmail { get; set; }
}我想索引一组这个(和其他)对象。
它的想法是,用户将输入一些数据到文本框中,“内存索引”将接受该字符串,并返回一个或多个属性中包含搜索值的所有对象。
对于这样的事情,在.NET中有现成的解决方案吗?或者图书馆,或者别的什么?
谢谢
发布于 2012-10-23 17:45:32
如果您想以相对较酷的方式存储数据,请检查Lucene.Net,甚至RavenDB文档数据库-顺便说一句,这是基于Lucene.Net的。RavenDB实现了LINQ驱动程序,所以你可以在集合中使用LINQ查询,并动态地获取它们。你有索引支持,所以你可以为你的计算实现非常高的性能。
发布于 2012-10-23 17:44:21
我不知道任何开箱即用的解决方案,但我会手动完成。
string input = "whatever";
IEnumerable<Venue> matches = allVenues.Where(v => v.LongName.Contains(input)
|| v.ShortName.Contains(input)
|| v.Market.Contains(input)
|| v.ClientEmail.ToString().Contains(input));也许它已经足够快了。优点是你不需要任何额外的资源。
https://stackoverflow.com/questions/13027563
复制相似问题