2009-12-17 17 views
0

我目前正在使用CMS自身提供的功能爲我們的網站之一實現全文搜索引擎。它允許我在不進行中間層編程的情況下執行SQL查詢。SQL Server'執行全文操作失敗 - 僅包含被忽略的單詞'

但是,這也意味着我無法使用編程過濾或清理搜索查詢數據。運行良好,直到用戶輸入「噪音詞」。

我的當前查詢獲取用戶輸入的值並在發送給CONTAINS函數(如ltrim/rtrim)之前對其執行一些操作。它也用'AND'取代空格,所以每個單詞都用作單獨的子句。

這是問題開始的地方。顯然,當你在其中一個子句中有一個噪音字(並且只有那個)時,SQL Server會抱怨。因此,當用戶輸入'Wat niemand has verwacht'作爲查詢(荷蘭語)時,SQL Server會抱怨子句只包含被忽略的單詞。它與上半部分('尼曼德')一起工作,但一進入'有'就退出。編輯完成後,CONTAINS功能將收到'Wat AND niemand AND AND verwacht',並且會窒息。

因此,具體而言:有誰知道我怎樣才能讓SQL Server過濾掉噪音字?當然,我可以包括一個巨大的替換列表,其中包括每個噪音詞,但我懷疑這是否有效。我也可以過濾掉< = 3個字母的單詞,但我認爲這對於更長的噪音詞來說會有幫助(據推測,'amfitheatersgewijze'也是一個噪音詞)。清除噪音字配置文件並重建搜索索引是我只考慮最後一項措施。

回答

0

將'單詞'neveeverfindthis附加到每個查詢(或每個沒有超過5個字符的單詞的查詢)。

相關問題