如何在ASP.NET MVC应用程序中实现搜索功能

问题描述:

我可以想象在ASP.NET MVC应用程序中实现搜索功能的多种方式,但由于找不到太多文档,我在想如果您有任何常见模式,技术或在ASP.NET MVC应用程序中实现搜索功能的常用方法(类似于*)。有些技术是我心目中是:如何在ASP.NET MVC应用程序中实现搜索功能

  • SQL Server全文搜索
  • 外部搜索引擎(如Google搜索服务器2008)
  • Lucene.NET

...但是将它们与ASP.NET MVC集成的最佳方法?

想法?

我相信他的一篇博文Jeff Atwood谈论他如何使用sitemaps来让谷歌处理堆栈溢出的大部分搜索功能。为什么编写自己的搜索算法时,人们可能只是要使用谷歌呢?

这不是完全清楚你所专门询问,但总的来看:

  1. 写返回一个搜索表单视图助手或局部视图。在需要显示搜索框的任何地方打电话给您的其他页面。使表单操作GET,而不是POST。
  2. 对于网站搜索,您可能需要拥有搜索控制器。为了在一种特定类型的数据中进行搜索,您可以将操作添加到现有控制器或将参数添加到现有操作。大多数情况下,我们必须添加的唯一一个参数是针对特定数据类型的通用“List”操作。搜索表单调用“List”并用搜索查询字符串设置参数。
  3. 实际搜索是在您的存储库中完成的。这是应用程序中唯一知道诸如SQL Server或Lucene之类的部分。对于微不足道的情况,控制器可以在存储库返回的IQueryable <T>附加一个.Where。