为什么我的单字符全文搜索不起作用?

Jon*_*len 1 sql-server full-text-search sql-server-2014

鉴于此代码,我没有得到任何结果:

SELECT TOP 10 * FROM MyTable WHERE CONTAINS(TextColumn, '"W"')
Run Code Online (Sandbox Code Playgroud)

我检查过的事情:

  • 较长的单词会返回结果
  • 没有与此索引关联的停止LIST
  • 专栏中肯定有"James W Brown"等文字
  • 全文索引是最新的.

编辑:我正在寻找与索引相关的停止列表,而不是停止词.

Jon*_*len 6

答案是确保您有一个与索引关联的空停止列表.仅仅没有停止列表是不够的,因为它只使用默认停止列表.

CREATE FULLTEXT STOPLIST [EmptyStopList] ;
GO
ALTER FULLTEXT INDEX ON MyTable SET STOPLIST [EmptyStopList]
Run Code Online (Sandbox Code Playgroud)


M.A*_*Ali 5

Full text Search是做特色Language Specific Search

搜索可能会忽略数据中的文字串并搜索特定于语言的语言(特定词的屈折形式、同义词等)中的特定词。

在您的查询中,您正在寻找字母“ W",它不是英语单词,它是一个字母表,但单独它没有任何意义。为此目的,它更像是字符串中的模式,您应该使用LIKE关键字和通配符%这将带回字符串值 James W Brown

另一方面,如果您想使用 FTSJames在您的数据库中查找所有可能的内容,那么 FTS 会很方便。通过对 James 进行 THESAURUS 搜索,这将带回 Jim、Jimmy、Jimmie 等,但您必须再次编辑 FDData 下的 XML 文件以使用特定语言来实现这一点。