【发布时间】:2011-02-25 07:18:21
【问题描述】:
我的 mvc 应用需要一个简单的站点搜索功能。有些页面是静态的,有些是动态的(例如在 cms 中输入的新闻文章)。我希望搜索能够同时处理这两个问题。这个产品好用吗? http://www.sitesearchasp.net还有其他吗?
【问题讨论】:
我的 mvc 应用需要一个简单的站点搜索功能。有些页面是静态的,有些是动态的(例如在 cms 中输入的新闻文章)。我希望搜索能够同时处理这两个问题。这个产品好用吗? http://www.sitesearchasp.net还有其他吗?
【问题讨论】:
@stephbu - 谢谢你的提及。
如果您选择使用 arachnode.net,您可以选择 Lucene.NET 或 SQL 全文索引。
Lucene.NET 有一些“令人头疼的问题”,尤其是在建立并发读/写/搜索场景时,但作为内容的静态反映,它工作得很好。
如果您想要免费的统包服务,请尝试 Solr(.Net) 或 Microsoft Search Server。
http://www.microsoft.com/enterprisesearch/en/us/search-server-express.aspx(上次我看这个是免费的...)
谢谢! 迈克
【讨论】:
如果可以的话,不要购买任何东西——那里有许多基于 .NET 的免费搜索引擎。最喜欢的选择是Lucene.net,这里有不错的教程:
设置起来相当简单,您可以通过 Lucene API 控制对哪些数据进行索引。如果您需要爬网,可以使用诸如 Arachnode 之类的开源爬虫扩展。它在索引目录等方面非常强大。
猜测这取决于搜索对您的业务的重要性相对于拥有搜索引擎的成本。购买一个可能会为您提供统包功能,但如果您想要更高级的功能,毫无疑问会花费相同的集成成本。
【讨论】:
您也可以考虑使用Solr,这是一个位于 Lucene 之上的搜索引擎 Web 服务,并提供了额外的功能,例如命中突出显示和分面搜索。 .NET 集成可通过SolrNet 库获得。 Solr 和 SolrNet 都是免费的。
通过使用 SolrNet,您可以轻松索引您的数据库内容。我使用 NHibernate 进行数据库访问,并且 SolrNet 也具有 NHibernate 集成,因此当内容更改时文档会自动重新索引。您可以轻松地为您选择的数据库访问方法设置类似的安排。
对于静态页面,您可以通过编程方式提交 HTML 或使用网络爬虫(请参阅 this question 获取一些建议)。我不需要这样做,所以我无法就使用哪种工具提出任何建议。
【讨论】: