我有一個問題包容性表達式中的「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
謝謝。