1

我们正在为我们的客户开发网站,我们希望采用一种可以轻松重复使用的搜索解决方案。我们应该追求哪一个?我们应该使用 Google Search API 还是应该使用 MS Sql Server 全文索引和 CONTAINS & FREETEXT 谓词?

4

2 回答 2

4

我们在 Stack Overflow 上使用 SQL Server 全文索引,它工作得相当好——但我只能在 2005 年和 2008 年推荐它,我们使用它的版本。我听说 2000 年情况更糟。有一些怪癖(停用词列表等),但并不严重。它速度很快,而且大部分情况下都能做到。

您遇到的问题contains()freetext()用户通常希望在“整个页面”级别搜索,例如 Google,其中写入页面/屏幕的任何内容都是可搜索的。数据库实际上并不是这样工作的,但用户并不关心这一点。他们关心结果,并且基于多年的网络搜索有(可以说是合理的)期望。

如果您希望需要“整页”搜索级别,我强烈建议您查看Google Search APILucene.NET(假设您是基于 SQL 使用的 Microsoft 堆栈)。

于 2009-07-19T05:09:02.370 回答
3

SQL Server 全文搜索的好处是进入门槛很低(假设您已经在使用 SQL Server)。StackOverflow 使用它进行搜索。缺点是它的有效性(或缺乏有效性)是SO最常受到批评的特性之一。以至于很多人(包括我自己)默认在 Google 中使用“site:stackoverflow.com ...”。

Google 自定义搜索的进入门槛也很低,但您无法控制索引的更新频率以及可以返回多少搜索结果。Google Site Search是一个更好的版本,它更正了其中一些功能(如按需索引)。

在顶端您有Google Search Appliances,如果您的数据不公开,这确实是您唯一的 Google 选项。

哪个合适取决于您的数据需要重新索引的频率、您提出的请求数量、您想要使用多少带宽来获取索引、您的数据是否公开以及您需要搜索结果的好坏程度。没有一个答案。

于 2009-07-19T05:08:07.037 回答