【问题标题】:Fulltext Contains does not return rows全文包含不返回行
【发布时间】:2019-03-07 12:26:32
【问题描述】:

我在一个表中有一行,在名为 description 的列中包含“DS012345” 当我使用这个查询时:

Select * from Tablename where Contains(Description, ' "*012345*" ')

此查询不返回任何结果。 我已经创建了唯一索引、全文目录,我已经使用对象资源管理器关闭了停用词。仍然不知道为什么它不返回该行。 对此有何建议或理由?

谢谢。

【问题讨论】:

    标签: sql-server full-text-search contains


    【解决方案1】:

    为什么不直接使用LIKE 来进行搜索。

    Select * from Tablename where Description LIKE '%012345%'
    

    只需搜索012345 出现在描述列中的任何位置。

    【讨论】:

    • 谢谢。但我必须在这种情况下专门使用 Contains
    • 啊,我明白了,抱歉,我没有意识到包含是必须的 :)
    • @dkum 根据一些文档,星号只能以一种方式工作,例如'"test*"',而不是像'"*test*"' 这样两侧的星号。我认为它不适用于部分搜索。也许试一试,看看前缀版本是否与最后的一个星号一起使用。例如。 '"DS*"'
    • 谢谢.. 会试试看。
    【解决方案2】:

    停用词是它开始在您的数据库中寻找单词的数字。 应该使用全文来获取确切的单词,如果你只想要单词的一部分,你应该使用 LIKE %...%。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-07
      • 2012-05-17
      • 2018-11-25
      • 2012-05-27
      • 1970-01-01
      • 2010-09-05
      • 2022-07-23
      • 2021-03-31
      相关资源
      最近更新 更多