1

我已将 pdf 文件的内容放入表格中。我搜索过

SELECT * FROM Doc WHERE Content LIKE '%blitz%

找到了 78

SELECT * FROM Doc WHERE CONTAINS(Content, '"*blitz*"')

找到了 72

我打开了包含未找到结果的 PDF,其中包含 blitz 一词。

电话 / EDV / 锅。/ 闪电战

斯宾格勒闪电战

怎样才能写出类似'%word%'的完美等价物

我没有从谷歌那里找到很多帮助。这是我第一次想使用全文搜索目录

4

2 回答 2

1

全文搜索,顾名思义,索引完整的单词,并且在大型文本文件中搜索文本时 比LIKE运算符快得多。LIKE运算符将始终扫描文本(包括空格)中的所有内容,另一方面,全文搜索将基于完整单词进行索引,并将基于完整单词显示结果。您可以通过使用停止列表(系统中的可配置文件)告诉 SQL Server 哪些字符/单词被视为干扰词。有关停止列表的更多信息:https ://docs.microsoft.com/en-us/sql/relational-databases/search/configure-and-manage-stopwords-and-stoplists-for-full-text-search

有关 CONTAINS 的更多信息: CONTAINS 可以搜索:

  1. 一个词或短语。
  2. 词或短语的前缀。
  3. 词形(如词的最高级)示例:驱动器、驱动器、驱动器和驱动器将在您搜索驱动器时显示。
  4. 同义词。

在您的情况下,我会说您必须单独使用LIKE运算符来获取这 5 个单词,因为 contains 将无法搜索它们(除非指定了完整的单词)。

于 2017-11-29T10:51:57.170 回答
0

尝试重建 FTS 索引https://technet.microsoft.com/en-us/library/bb326034(v=sql.105).aspx。如果颓废仍然存在,请为我们提供确切的词语 CONTAINS 没有得到。

于 2017-11-29T11:09:12.083 回答