2010-02-12 23 views
3

我正在使用MySQL全文和PHP(codeigniter)來搜索包含RSS項目的數據庫。問題是其中一些項目的標題使用下劃線而不是空格。由於MySQL認爲下劃線是單詞的一部分,因此除非用戶輸入包含下劃線的確切標題,否則這些項目將永遠不會在搜索中匹配。如何讓MySQL將下劃線看作全文搜索的詞分隔符?

服務器是共享的,所以我沒有訪問MySQL服務器系統變量。

這種行爲可以用其他方式改變嗎? 這可以通過搜索查詢本身完成嗎?

我知道我可以用空格替換數據庫中的所有下劃線出現,但這會損害這些標題的原始完整性。只是想知道是否有另一種方式來做到這一點。

回答

1

我知道我可以用空格替換數據庫中的所有下劃線出現,但這會損害這些標題的原始完整性。只是想知道是否有另一種方式來做到這一點。

您可以不用替換原始標題字段中的下劃線,而是使用單獨的專用於全文搜索的字段。

這允許您將下劃線和聚合關鍵字替換爲該字段(類別名稱,作者,標籤等)以增強搜索結果的相關性。 我們很多次成功地使用了這個功能,以便在搜索內容中刪除HTML標籤。

+0

這聽起來像是一個很好的選擇。將努力實施該方法。多謝你們。 – deadelvis 2010-02-14 12:31:13

1

我不認爲這可以做到沒有訪問服務器。我見過的唯一方法是在​​(「我如何添加' - '到單詞字符列表」)上的第一條評論。它需要停止服務器並更改內部配置。

你最好打賭可能是創建第二列刪除下劃線,並進行搜索。

相關問題