使用哪种搜索技术与ASP.NET一起使用?

8

你在网站上提供搜索功能的首选方法是什么?目前我更喜欢使用Lucene.net而不是索引服务/SQL Server全文搜索(因为没有需要在服务器端设置的内容),但还有其他什么方法被使用了?

9个回答

6

我们同时使用了Lucene.net、索引服务和SQL Server全文检索。对于具有大型和繁重的数据库搜索功能的项目,SQL搜索在性能/资源消耗方面具有优势。否则,Lucene在各个方面都更好。


4

看看Solr。它使用Lucene进行文本索引,但它是一个完整的http服务器,因此您可以通过http发布文档并使用url进行搜索。最好的部分是它会自动提供聚合搜索,如果您自己实现需要很多工作。


Solr还提供了其他功能,如果您选择使用Lucene.Net可能需要重新实现这些功能。例如:Solr可以将索引从一台机器复制到另一台机器,这可以帮助应对故障转移或性能问题。Solr可以通过自动分配查询到多个“分片”服务器来处理庞大的索引。使用DataImportHandler,Solr可以爬取SQL数据库并在其中包含的数据上建立索引,而无需额外的代码(只需XML配置)。主要潜在的缺点是,如果您需要定制搜索代码,则现在必须在Java中进行定制,而不是.NET。 - Chris
1
请注意,Solr 也有其缺点。与在同一台机器上运行 Web 应用程序的本地代码相比,HTTP 是一种昂贵且浪费资源的协议。如果您的应用程序层已经具备冗余性,通过将所有搜索聚合到单个(或少数)服务器中重新集中搜索并不理想。使用 Solr 后,管理不断变化的索引变得更加困难。如果您的应用程序具有许多不同的 Lucene 索引,或者作为实现的一部分同时搜索多个索引,则它也不是一个好的范例适配。 - Ben DeMott

0

我也推荐使用SOLR。它易于设置、维护和配置。我发现它很稳定,而且易于扩展。还有一个用于与solr交互的c#包。


0

0

你可以使用谷歌,虽然它不是最快的索引器,但当你没有预算时,它提供了很好的结果。


0

dtSearch是我们经常使用的一个工具,但我并不是它的忠实粉丝。


0
现在有很多人都在使用Google的自定义搜索,我认识的几家银行甚至将其用于公司内部网。

0
如果您需要索引网站的所有页面(而不仅仅是Google索引的页面),或者想要为内部网站创建搜索功能,那么Google Mini非常适合。它需要一些费用,但是只需几个小时就可以轻松设置并运行。根据您需要索引的页面数量,成本可能会很高。

0

我正在使用dtSearch,感觉还可以。虽然它的.NET API不是最好的,但它能完成工作速度也相当快。而且价格便宜,你的老板会喜欢(约1000美元)。

结果并不理想,因为它没有进行任何语义相关性排名或其他花哨的功能。但比起MS SQL服务器,它做得更好。

它有一个网络爬虫,使得在网站上快速搜索应用程序变得容易。如果需要,可以使用API创建钩子连接到数据库并提供项目级别安全性,但你必须自己动手。他们的论坛也有待改进,但也许人们会开始在这里发布dtSearch的东西。:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接