【问题标题】:differents result FullTextSearch Contains and like不同结果 FullTextSearch 包含和喜欢
【发布时间】:2017-11-29 10:44:59
【问题描述】:

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

SELECT * FROM Doc WHERE Content LIKE '%blitz%

找到 78 个

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

找到了 72 个

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

电话 / EDV / 锅。 / 闪电战

斯宾格勒闪电战

怎样才能写出像'%word%'这样的完美等价物

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

【问题讨论】:

    标签: sql full-text-search sql-like containstable


    【解决方案1】:

    全文搜索,顾名思义,索引完整的单词,在大文本文件中搜索文本时比 LIKE 运算符快得多。 LIKE 运算符将始终扫描文本(包括空格)中的所有内容,而 全文搜索 将基于完整单词进行索引,并将基于完整单词显示结果。您可以使用 Stop List(系统中的可配置文件)告诉 SQL Server 哪些字符/单词被视为 Noise Words。 有关停止列表的更多信息: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. 单词形式(如单词的最高级)示例:drive、driven、driving 和driven 将在您搜索drive 时显示。
    4. 同义词。

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

    【讨论】:

    • 它没有解释为什么 Telefon / EDV / Pot。 / Blitzschutz,你认为,它假装只有一个词吗?
    • @Monica :您搜索了“blitz”,但是这 4 个词中没有一个与“blitz”有任何相似之处(我不认为“Blitzschutz”和“blitz”在术语上相互关联语言)。
    • 但它从闪电战开始。 / 有什么区别吗?
    • 整个单词需要匹配或者应该是同义词。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-04
      • 1970-01-01
      • 2021-03-25
      • 2011-08-02
      • 1970-01-01
      相关资源
      最近更新 更多