假设我们有一个带有全文字段的表格。该字段称为text
。该表的内容将是:
car wash
car and wash
这个词and
在我的stoplist
现在,我将使用这个 sql 查询这个表:
select * from mytable
where contains(text, '"car wash"')
此查询仅返回car wash
行而不返回car and wash
行。通过假设这个词and
是一个停用词,为什么 Sql 不返回该car and wash
行?
我知道我正在进行短语搜索(使用“”)。这正是我需要的,但我认为 Sql 应该忽略停止列表中的单词,这不是正在发生的事情。这让我快疯了。
我的理解是,当 FT 算法找到像它这样的短语时,car and wash
它只会索引car
和wash
. 这是真的?
此外,当我查询它时,ft_parser
它说出了我期望它说的内容:
SELECT * FROM sys.dm_fts_parser ('"car and wash"', 1033, 5, 0)
special_term display_term
Exact Match car
Noise Word and
Exact Match wash
有什么想法吗?