一尘不染

进行类似于“凌乱问题”搜索的SQL是什么?

sql

我该如何编写将在数据库的“标题”和“摘要”字段中搜索类似问题的SQL语句?

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

我能想到的步骤是;

  1. 去除引号
  2. 将句子拆分成单词数组,然后对每个单词运行SQL搜索。

如果以这种方式这样做,我想我将不会获得任何有意义的结果。我不确定是否在服务器上启用了全文搜索,所以我没有使用它。使用全文搜索会有优势吗?

使用SQL 2005


阅读 150

收藏
2021-03-17

共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
2021-03-17