2010-03-12 47 views
1

在數據庫中我有一個.mht文件的字段。我想用FTS來搜索這個文件。我得到了這個工作,但我對結果不滿意。例如(對不起,這是在荷蘭,但我認爲你明白我的意思)我會用2個字:zieken和ziekenhuis。正如你所看到的那樣,「zieken」這個詞在「ziekenhuis」這個詞中。SQL Server 2008全文搜索沒有找到單詞?

當我搜索'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) 

回答

1

我建議你看一下使用CONTAINS謂詞,而不是FREETEXT

使用方案,包括你想實現什麼,都可以找到在文檔的示例部分。

從您的描述中,我相信您正在嘗試執行「前綴」搜索。例如:

USE AdventureWorks; 
GO 
SELECT Name 
FROM Production.Product 
WHERE CONTAINS(Name, ' "SearchTerm*" '); 
GO 

這將爲您提供一個結果集,其中包含「包含」前綴搜索詞的所有單詞。

+0

SQL Server不支持搜索項之前的星號。 – Qsebas 2014-01-08 14:00:55

相關問題