Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在ASP.NET MVC应用程序中实现搜索功能_Asp.net Mvc_Design Patterns_Search - Fatal编程技术网

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

Asp.net mvc 如何在ASP.NET MVC应用程序中实现搜索功能,asp.net-mvc,design-patterns,search,Asp.net Mvc,Design Patterns,Search,我可以想象在ASP.NET MVC应用程序中实现搜索功能的许多方法,但由于我找不到太多文档,我想知道您是否有任何通用模式、技术或通用方法来实现ASP.NET MVC应用程序中的搜索功能(类似于stackoverflow)。我想到的一些技术是: SQL Server全文搜索 外部搜索引擎(如搜索服务器2008) Lucene.NET …但是,将它们与ASP.NET MVC集成的最佳方法是什么 想法?我相信杰夫·阿特伍德(Jeff Atwood)在他的一篇博文中谈到了他是如何让谷歌处理堆栈溢出的

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

  • SQL Server全文搜索
  • 外部搜索引擎(如搜索服务器2008)
  • Lucene.NET
…但是,将它们与ASP.NET MVC集成的最佳方法是什么


想法?

我相信杰夫·阿特伍德(Jeff Atwood)在他的一篇博文中谈到了他是如何让谷歌处理堆栈溢出的大部分搜索功能的。为什么要编写自己的搜索算法,而人们可能只是想使用谷歌呢?

不完全清楚你具体在问什么,但一般来说:

  • 编写返回搜索表单的视图帮助器或局部视图。在需要显示搜索框的其他页面中调用它。使表单操作成为GET,而不是POST
  • 对于站点搜索,您可能需要一个搜索控制器。要在一种特定类型的数据中进行搜索,可以向现有控制器添加操作或向现有操作添加参数。在大多数情况下,我们唯一需要添加的是针对特定数据类型的通用“List”操作的参数。搜索表单调用“List”并使用搜索查询字符串设置参数
  • 实际搜索是在存储库中完成的。这是应用程序中唯一了解SQL Server或Lucene之类内容的部分。对于一般情况,控制器可以将.Where附加到存储库返回的IQueryable