SQL Server 2012:全文查询有复合词的结果,但没有复合词的结果(单独的术语)
SQL Server 2012 : full-text query has results for compound word but not for compounds (separate terms)
在我的 Microsoft SQL Server 2012 table 中,我有一个全文索引列,其中多次包含单词 'bittersweet'。
现在,当我使用输入 'bittersweet' 执行搜索查询时,我得到以下查询和结果:
SELECT *
FROM MyTable
WHERE CONTAINS((FTString),'"*bittersweet*"')
给我很多结果。没关系。
但是当我输入 'bitter' 和 'sweet' 时,我将其转换为以下查询:
SELECT *
FROM MyTable
WHERE CONTAINS((FTString),'"*bitter*" AND "*sweet*"')
给了我 0 个结果,这出乎我的意料。
为什么会出现这种行为?我应该改变什么才能得到想要的结果? (我认为这两个查询应该几乎相同。)
使用这个:
--if words separated from each other
SELECT *
FROM MyTable
WHERE CONTAINS (FTString, 'bitter AND sweet')
--otherwise
SELECT *
FROM MyTable
WHERE CONTAINS(FTString,'bittersweet')
OR CONTAINS(FTString, 'bitter AND sweet')
有关 'contain' 方法的更多信息,请使用此 link:
https://msdn.microsoft.com/en-us/library/ms187787.aspx
在我的 Microsoft SQL Server 2012 table 中,我有一个全文索引列,其中多次包含单词 'bittersweet'。
现在,当我使用输入 'bittersweet' 执行搜索查询时,我得到以下查询和结果:
SELECT *
FROM MyTable
WHERE CONTAINS((FTString),'"*bittersweet*"')
给我很多结果。没关系。
但是当我输入 'bitter' 和 'sweet' 时,我将其转换为以下查询:
SELECT *
FROM MyTable
WHERE CONTAINS((FTString),'"*bitter*" AND "*sweet*"')
给了我 0 个结果,这出乎我的意料。
为什么会出现这种行为?我应该改变什么才能得到想要的结果? (我认为这两个查询应该几乎相同。)
使用这个:
--if words separated from each other
SELECT *
FROM MyTable
WHERE CONTAINS (FTString, 'bitter AND sweet')
--otherwise
SELECT *
FROM MyTable
WHERE CONTAINS(FTString,'bittersweet')
OR CONTAINS(FTString, 'bitter AND sweet')
有关 'contain' 方法的更多信息,请使用此 link:
https://msdn.microsoft.com/en-us/library/ms187787.aspx