在数据库中,我有一个带有.mht文件的字段。我想使用FTS搜索本文档。我有这个工作,但我对结果不满意。例如(抱歉,这是荷兰语,但我认为你明白我的意思)我会用2个词:zieken和ziekenhuis。正如你所看到的,“zieken”这个词在'ziekenhuis'一词中。
当我搜索'ziekenhuis'时,我得到了大约20个结果。当我搜索'zieken'时,我得到7个结果。这怎么可能?我的意思是,为什么FTS没有恢复我从'ziekenhuis'得到的最小结果?
这是我使用的查询:
SELECT DISTINCT
d.DocID 'Id',
d.Titel,
(SELECT afbeeldinglokatie FROM tbl_Afbeelding WHERE soort = 'beleid') as Pic,
'belDoc' as DocType
FROM docs d
JOIN kpl_Document_Lokatie dl ON d.DocID = dl.DocID
JOIN HandboekLokaties hb ON dl.LokatieID = hb.LokatieID
WHERE hb.InstellingID = @instellingId
AND (
FREETEXT(d.Doel, @searchstring)
OR FREETEXT(d.Toepassingsgebied, @searchstring)
OR FREETEXT(d.HtmlDocument, @searchstring)
OR FREETEXT (d.extraTabblad, @searchstring)
)
AND d.StatusID NOT IN( 1, 5)
答案 0 :(得分:1)
我建议您查看使用CONTAINS谓词,而不是FREETEXT
使用场景,包括您希望实现的目标,可以在文档的示例部分找到。
根据您的描述,我相信您正在尝试执行“前缀”搜索。例如:
USE AdventureWorks;
GO
SELECT Name
FROM Production.Product
WHERE CONTAINS(Name, ' "SearchTerm*" ');
GO
这将为您提供一个结果集,其中包含“包含”前缀搜索词的所有单词。