【发布时间】:2018-04-11 23:20:17
【问题描述】:
我在 SQL Server 2016 上使用全文CONTAINS 来搜索表。但是,如果我在查询中更改大小写,我会得到不同的结果。例如:
这样做(使用大写L):
select * FROM CONTAINSTABLE(OITM, (ItemCode), '"L-1326*"' )
返回这个:
- L-1326 416
- L-1326-COVER-SSS 208
- L-1326-SSS 208
但是这样做(使用小写'l')::
select * FROM CONTAINSTABLE(OITM, (ItemCode), '"l-1326*"' )
返回这个:
- L-1326-COVER-SSS 208
- L-1326-SSS 208
我的全文目录定义如下:
CREATE FULLTEXT CATALOG SBOWeex
WITH ACCENT_SENSITIVITY = OFF
GO
我的全文索引是这样定义的:
CREATE FULLTEXT INDEX ON [dbo].[OITM] (
ItemCode Language 3082
,ItemName Language 3082
,CodeBars Language 3082
,SuppCatNum Language 3082
)
KEY INDEX OITM_PRIMARY
ON SBOWeex
WITH CHANGE_TRACKING AUTO
GO
ALTER FULLTEXT INDEX ON [OITM] SET STOPLIST = OFF
我不应该期望两个查询的结果相同吗?
编辑:我正在使用 Latin1-General、不区分大小写、区分重音的排序规则。但是我的全文目录是用重音敏感关闭定义的。此外,这似乎只发生在 "L-" 和 l- 组合中,任何其他字母与 "-" 组合似乎在西班牙语和英语解析中具有相同的行为.
【问题讨论】:
标签: sql sql-server full-text-search full-text-indexing