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

sac*_*haa 21 asp.net-mvc search design-patterns

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

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

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

想法?

Cra*_*ntz 5

目前还不完全清楚你具体要求的是什么,但总的来说:

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


kgr*_*rad 2

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