SQL Server:由干扰词导致没有搜索结果

Ben*_*ler 3 sql-server full-text-search sql-server-2014

我已通过 SQL Server 2008 的导入/导出将数据库从 SQL Server 2000 移至 SQL Server 2014,以使其兼容 2014 年的导入。到目前为止,一切正常。

我发现使用通常位于停止列表中的单词(例如文章)会破坏或破坏全文搜索中的检索并且不返回任何结果。仅使用重要的关键字会像往常一样返回结果。据我所知,在旧版本的 SQL Server 中,使用了与停止列表不同的系统。尽管我在FTData文件夹中找不到任何相关内容,因为它要么是空的,要么是带注释的。

通过 SQL Server Management Studio 检查数据库时,我发现所选数据库(在Storage下)中没有配置停止列表。我尝试根据系统停止列表添加一个新的,但这对行为没有任何影响。

什么会导致这种行为?

更新

使用的查询:

SELECT ProductID FROM SearchTable WHERE CONTAINS(*, '"word"') AND
CONTAINS(*, '"noiseword"')
Run Code Online (Sandbox Code Playgroud)

结果失败,因为在搜索查询中单词是用 AND 连接的。使用干扰词显然总是返回 false,因此不会返回任何项目。

我试图改变这种行为,但这并不能阻止它:

sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'transform noise words', 1;
RECONFIGURE;
GO
Run Code Online (Sandbox Code Playgroud)

我将根据wBob的建议尝试重建,这可能会有所帮助

Ben*_*ler 5

只需停用停止列表即可解决问题。可能有更好的解决方案,但这对我有用。

Use database; 
ALTER FULLTEXT INDEX ON table
   SET STOPLIST OFF;
GO
Run Code Online (Sandbox Code Playgroud)