我有一个问题包容性表达式中的“blah”和“blah *”有什么不同?下面是 是我的上下文。包含表中的通配符全文搜索
create table testWildcard(pk int identity constraint twpk primary key, displayName varchar(100))
GO
create fulltext catalog test12 as default
GO
create fulltext index on testWildcard(displayName) key index twpk
GO
insert into testWildcard(displayName) values('blahBlahBlah')
insert into testWildcard(displayName) values('blah<bold>Blah</bold>Blah')
insert into testWildcard(displayName) values('blah Blah Blah')
GO
当使用“blah *”作为关键字进行搜索时,结果为3条记录。
select * from testWildcard t
inner join CONTAINSTABLE(testWildcard, *, '"blah*"', LANGUAGE 1033) as w on t.pk=w.[Key]
results:
pk displayName Key RANK
1 blahBlahBlah 1 16
2 blah<bold>Blah</bold>Blah 2 48
3 blah Blah Blah 3 48
当使用“blah”作为关键字进行搜索时,结果为2条记录。
select * from testWildcard t
inner join CONTAINSTABLE(testWildcard, *, '"blah"', LANGUAGE 1033) as w on t.pk=w.[Key]
resuts:
pk displayName Key RANK
2 blah<bold>Blah</bold>Blah 2 48
3 blah Blah Blah 3 48
然后我用系统函数sys.dm_fts_parser来分析关键字,它们没有任何区别。我谷歌,但我仍然无法找到正确的答案。
SELECT * FROM sys.dm_fts_parser ('"blah"', 1033, 0, 0)
SELECT * FROM sys.dm_fts_parser ('"blah*"', 1033, 0, 0)
result:
keyword group_id phrase_id occurrence special_term display_term expansion_type source_term
0x0062006C00610068 1 0 1 Exact Match blah 0 blah
谢谢。