SQL Server全文CONTAINS + COLLATE忽略口音问题
技术问答
353 人阅读
|
0 人回复
|
2023-09-12
|
大家好,我在用COLLATE同时忽略重音也被使用Contains full text这方面有些挣扎。
# q6 Q" M' T; l* B% k$ X2 A在我理解之前,香港专业教育学院减少列搜索只是这里的一个例子,实际参数的实时编码只是为了简单地做到这一点。/ P# m. r) W6 N2 a/ j( \
如果我有
7 g! B9 r& @1 Q2 P# h& V3 H! `SELECT Col1, Title COLLATE SQL_Latin1_General_Cp850_CI_AI AS Title, ColXFROM FooWHERE CONTAINS((Title), '"suenos" OR "french"')这只会用法语返回结果。例如,我将添加通配符:
6 j F, k( {! T/ t3 _ WHERE CONTAINS((Title), '"suenos*" OR "french"')我得到了Sue帽os法语搜索结果。Ive在LIKE和COLLATE同样的行为被注意到,例如,它只有和’suenos’相对应的’suenous%’的单词。 y: {0 f1 Z) \0 ?
为什么会这样?
i0 x" F7 a/ E& k, D; P% Z4 ]; T非常感谢。
0 ]* S8 {0 E/ o# O5 @
8 m {+ _& {5 R2 L 解决方案: ' a8 K) H/ _+ L
假设:你在用sql2005或更高版本。
# @& R* G1 A2 h( I0 G C9 g% B& D3 u第一次创建索引时,我相信你需要把口音敏感度设置为开或关。4 V/ |; i6 ]0 P0 Z: C
CREATE FULLTEXT CATALOG AwCat WITH ACCENT_SENSITIVITY=OFFGO或更改它:
1 M2 J" g: G( O8 H& x7 rALTER FULLTEXT CATALOG AwCat REBUILD WITH ACCENT_SENSITIVITY=ONGO您可以在这里找到更多信息Microsoft SQL Server 9.0技术文章SQL Server0 N) a3 F) W# p' H' {
2005全文搜索:内部和增强功能 |
|
|
|
|
|