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

有帮助吗?

解决方案

我们在这里对堆栈溢出使用SQL Server全文索引和它的作品相当不错 - 但我的只有的建议是在2005年和2008年,我们使用它的版本。我听说这是在2000年严重得多有怪癖(禁用词列表等),但并不严重。它的快速和做什么它在锡说,大部分。

在运行与contains()freetext()的问题是,用户往往期望在“整页”级别进行搜索,ALA谷歌,其中任何的书面页面/屏幕进行搜索。这不是真正的数据库是如何工作的,但用户并不关心这一点。他们关心的是结果,并有(可以说是合理的)期望基于多年网络搜索的。

如果您希望在需要“整个页面”搜索的水平,我强烈推荐看的谷歌搜索API ,或 Lucene.NET (假设你是一个基于使用SQL的)微软堆栈。

其他提示

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

谷歌自定义搜索 进入门槛也很低,但您失去了对索引更新频率以及可以返回多少搜索结果的一些控制。 谷歌网站搜索 是一个更好的版本,它纠正了其中一些功能(例如按需索引)。

在最顶端你有 谷歌搜索设备, ,如果您的数据不公开,这实际上是您唯一的 Google 选择。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top