什么是用于执行类似于Stackoverflow上的"相关问题"的搜索的SQL

Pic*_*ght 6 sql search text

我正在尝试实现类似于Stackoverflow上的"相关问题"的功能.

我如何编写SQL语句来搜索我的数据库的Title和Summary字段以寻找类似的问题?

如果我的问题是:"用于执行搜索的SQL是什么类似于Stackoverflow上的"相关问题".

我能想到的步骤是;

  1. 剥去引号
  2. 将句子拆分为一个单词数组,并在每个单词上运行SQL搜索.

如果我这样做,我猜我不会得到任何有意义的结果.我不确定服务器上是否启用了全文搜索,所以我没有使用它.使用全文搜索会有优势吗?

我发现了一个类似的问题,但没有答案:类似的问题

使用SQL 2005

Nic*_*kis 7

看看这个播客.

我们对"相关问题"查询的主要性能优化之一是在将查询提交到SQL Server 2008全文引擎之前删除前10,000个最常见的英语词典单词(由Google搜索确定).令人震惊的是,一旦你删除了前10k英语词典单词,大多数帖子都会留下多少.这有助于限制和缩小返回的结果,这使查询速度更快.


Pic*_*ght 1

在我的 SQL 2005 服务器上启用全文搜索后,我使用以下存储过程来搜索文本。

ALTER PROCEDURE [dbo].[GetSimilarIssues] 
(
 @InputSearch varchar(255)
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;

DECLARE @SearchText varchar(500);

SELECT @SearchText = '"' + @InputSearch + '*"'

SELECT  PostId, Summary, [Description], 
Created
FROM Issue

WHERE FREETEXT (Summary, @SearchText);
END
Run Code Online (Sandbox Code Playgroud)