【问题标题】:SQL Server Full text search Contains functionSQL Server 全文搜索 包含函数
【发布时间】:2017-08-28 05:25:17
【问题描述】:

我的 contains 函数有问题,当我使用 like '%ZAM%' 运算符搜索时,它会找到所有包含 ZAM 的单词,例如 ZAMANLAMA AZAMI ZAM 等。但是当我使用 fts index contains 函数时,它只会找到ZAM ZAMANLAMA 但它没有找到 AZAMI 或 123ZAM789。我也尝试过 CONTAINS (YourColumn, ' "ZAM" ' ) 但它不起作用。请帮帮我,fts 速度很快,但找不到所有包含 '%%' 运算符的内容,我该怎么办?

【问题讨论】:

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


    【解决方案1】:

    您可以在包含与like 运算符相同的语法之前使用“*”。但是您需要在搜索字符串之前和之后使用双引号。 尝试此查询一次。

    SELECT *
    FROM YourTable
    WHERE CONTAINS(YourColumn,'"*ZAM*"');
    

    (或)

    select * from YourTable where YourColumn like '%ZAM%'
    

    【讨论】:

    • 您好,感谢您的帮助,但我写错了第一个问题,我也尝试过 CONTAINS(YourColumn,'"ZAM"');但它没有找到所有包含 ZAM 的单词,例如 ZAMANLAMA 和 AZAMI,或者我尝试了这个考试 CONTAINS(YourColumn,'"APU"'),它没有找到 KAPUT 单词,这可能是是 fts 的 bug 吗?
    • 嗨,当我在评论中写 * 星号时,它没有告诉你我不知道为什么,但我在包含函数中使用星号,如 CONTAINS(YourColumn,'"ZAM "')
    • 当我执行此脚本以查看类似于 '%%' 的差异并包含函数时,通常我们不会期望这些差异,但它有.. select * from TABLE where COLUMN like '%ZAM%' except select * from TABLE where CONTAINS(COLUMN,'"ZAM"'); UZAMA YAYI AZAMI 123ZAM896 为什么会出现这种差异?包含是否应该找到AZAMI,UZAMA?
    • @Mehmet 使用 CONTAINS(YourColumn,'"*Yourstring*"') 并尝试。我的意思是说在 YourSubstring 之前和之后放置星 * 并尝试,而不仅仅是 ''YourSubstring''
    • 嗨,我在字符串之前和之后使用了星号*字符,它在评论处不可见,但我使用过,尽管我在字符串之前和之后使用了星号,但它找不到包含的单词字符串
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2014-11-18
    • 2016-09-18
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多