gpt4 book ai didi

sql - CONTAINSTABLE 通配符在短语匹配时失败?

转载 作者:行者123 更新时间:2023-12-04 06:17:58 26 4
gpt4 key购买 nike

我有一个搜索查询,它采用用户输入的短语并应返回结果,这是一个示例:

SELECT rank,[KEY] FROM CONTAINSTABLE(tblproduct, (title,subtitle,publisher_name),  @search_text,15)

@search_text 在哪里
Set @search_text = '"my favourite word*"'

就目前而言,该短语与数据库中的一本书完全匹配。但是,通配符 (*) 使它不返回任何结果。

当我省略通配符时,我会得到一个精确的短语匹配,但是,其他一些短语,如“不完美主义者”,无论是否使用通配符都不会返回任何结果。

为什么是这样?我可以检查什么?

目前,如果没有为通配符生成结果集,我会在没有通配符的情况下运行查询以查看它是否返回任何内容。如果那也失败了,我会运行一个正常的“like”语句。

显然,like 语句将永远持续下去……而且我不想在 760 万个强大的数据库中使用它来进行应该使用全文进行的搜索……

任何帮助表示赞赏!

最佳答案

使用 JStad 的建议,我查看了您的字符串的输出。我也在 MSDN 上找到了这个:

When is a phrase, each word contained in the phrase is considered to be a separate prefix. Therefore, a query specifying a prefix term of "local wine*" matches any rows with the text of "local winery", "locally wined and dined", and so on.



因此,默认情况下,My 一词被视为“噪声词”。添加 * 会导致解析器查找以 My 开头的任何单词。但是,在搜索索引时,My 一词似乎已被删除(请记住,这是一个干扰词),因此找不到匹配项。

我正在考虑通过 sys.dm_fts_parser 运行我的搜索字符串函数,在添加 *.

关于sql - CONTAINSTABLE 通配符在短语匹配时失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6995220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com