gpt4 book ai didi

sql - 为什么 SQL 全文索引不返回包含 # 的单词的结果?

转载 作者:行者123 更新时间:2023-12-02 00:53:21 26 4
gpt4 key购买 nike

例如,我使用 SQL Server 2005 的查询如下所示:

SELECT * FROM Table WHERE FREETEXT(SearchField, 'c#') 

我定义了一个全文索引,以使用 SearchField 列,该列在使用时返回结果:

SELECT * FROM Table WHERE SearchField LIKE '%c#%'

我相信#是一个特殊的字母,那么我如何让FREETEXT能够正确地处理上面的查询?

最佳答案

# 字符被索引为标点符号,因此被忽略,因此看起来我们将从单词索引忽略列表中删除字母 C。

完成此操作并重建索引后在本地进行测试,我得到了结果!

考虑在索引列上使用不同的分词器语言,以便这些特殊字符不会被忽略。

编辑:我还发现了 this information :

c# is indexed as c (if c is not in your noise word list, see more on noise word lists later), but C# is indexed as C# (in SQL 2005 and SQL 2000 running on Win2003 regardless if C or c is in your noise word list). It is not only C# that is stored as C#, but any capital letter followed by #. Conversely, c++ ( and any other lower-cased letter followed by a ++) is indexed as c (regardless of whether c is in your noise word list).

关于sql - 为什么 SQL 全文索引不返回包含 # 的单词的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1042/

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