https://addons.heroku.com/#search列出了一些非常酷的搜索插件。我正在为我的MVC项目寻找类似的东西。我希望它是:
我也想知道我是否应该使用Google搜索API,因为它似乎非常准确。我很好奇什么搜索系统堆栈overflow.com使用?
由于
答案 0 :(得分:2)
你要求一个MVC解决方案,我会给你一个。
实施接口ISearchable
interface ISearchable{
SearchResult Search(string query);
}
实施类SearchResult
public class SearchResult{
SearchResult(string title, string url, string description, int rank){
this.Title = title;
this.Url = url;
this.Description = description;
this.Rank = rank;
}
public string Title { get; set; }
public string Url { get; set; }
public string Description { get; set; }
public int Rank { get; set; }
}
让ViewModel实现ISearchable接口。
public class MyViewModel : ISearchable{
public List<Article> Articles { get; set; }
#region ISearchable
public SearchResult Search(string query){
string title = "";
string url = "";
string description = "";
int rank = 0;
// Custom logic to search for an article
...
return new SearchResult(title, url, description, rank);
}
#endregion
}
在ISearchable
上注册Application_Start
ViewModel,例如Unity
。
实施SearchController
并进行操作查询。
public ActionResult Query(SearchQueryModel model){
model.Search();
return View(model);
}
在model.Search()
中,搜索已实施ISearchable
界面的已注册ViewModel,使用最适合您的最佳搜索API。或者不要使用API。
现实情况是,任何搜索都会为您提供服务,但是当它不再为您服务时,您可以在不中断实施的情况下进行切换。
我知道您要求“最佳ASP.NET MVC搜索解决方案”。我不能为您挑选任何特定产品,因为我不知道您的解决方案的内部运作,您的预算等。
但严格来说,从ASP.NET MVC的角度来看,可以插入上述场景的应该是一个好的。如果它符合您的账单等...