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

时间:2009-02-18 23:19:42

标签: asp.net-mvc design-patterns search

我可以想象在ASP.NET MVC应用程序中实现搜索功能的许多方法,但由于我找不到太多文档,我想知道你是否有任何常见的模式,技术或通用方法来实现ASP中的搜索功能。 NET MVC应用程序(类似于stackoverflow)。我想到的一些技术是:

  • SQL Server全文搜索
  • 外部搜索引擎(如Search Server 2008)
  • Lucene.NET

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

想法?

2 个答案:

答案 0 :(得分:5)

你的具体要求并不完全清楚,但总的来说:

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

答案 1 :(得分:2)

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