【问题标题】:MVC site search functionality [closed]MVC 站点搜索功能 [关闭]
【发布时间】:2011-02-25 07:18:21
【问题描述】:

我的 mvc 应用需要一个简单的站点搜索功能。有些页面是静态的,有些是动态的(例如在 cms 中输入的新闻文章)。我希望搜索能够同时处理这两个问题。这个产品好用吗? http://www.sitesearchasp.net还有其他吗?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3


    【解决方案1】:

    @stephbu - 谢谢你的提及。

    如果您选择使用 arachnode.net,您可以选择 Lucene.NET 或 SQL 全文索引。

    Lucene.NET 有一些“令人头疼的问题”,尤其是在建立并发读/写/搜索场景时,但作为内容的静态反映,它工作得很好。

    如果您想要免费的统包服务,请尝试 Solr(.Net) 或 Microsoft Search Server。

    http://www.microsoft.com/enterprisesearch/en/us/search-server-express.aspx(上次我看这个是免费的...)

    谢谢! 迈克

    【讨论】:

      【解决方案2】:

      如果可以的话,不要购买任何东西——那里有许多基于 .NET 的免费搜索引擎。最喜欢的选择是Lucene.net,这里有不错的教程:

      Lucene Tutorial

      设置起来相当简单,您可以通过 Lucene API 控制对哪些数据进行索引。如果您需要爬网,可以使用诸如 Arachnode 之类的开源爬虫扩展。它在索引目录等方面非常强大。

      猜测这取决于搜索对您的业务的重要性相对于拥有搜索引擎的成本。购买一个可能会为您提供统包功能,但如果您想要更高级的功能,毫无疑问会花费相同的集成成本。

      【讨论】:

        【解决方案3】:

        您也可以考虑使用Solr,这是一个位于 Lucene 之上的搜索引擎 Web 服务,并提供了额外的功能,例如命中突出显示和分面搜索。 .NET 集成可通过SolrNet 库获得。 Solr 和 SolrNet 都是免费的。

        通过使用 SolrNet,您可以轻松索引您的数据库内容。我使用 NHibernate 进行数据库访问,并且 SolrNet 也具有 NHibernate 集成,因此当内容更改时文档会自动重新索引。您可以轻松地为您选择的数据库访问方法设置类似的安排。

        对于静态页面,您可以通过编程方式提交 HTML 或使用网络爬虫(请参阅 this question 获取一些建议)。我不需要这样做,所以我无法就使用哪种工具提出任何建议。

        【讨论】: