2014-11-05 40 views
0

我有一個網站的本地開發版本,我正在編寫搜索功能並運行到一個問題,其中我在PC上得到的結果與服務器。問題在於數據中有斜線。例如,字段包含兩臺服務器上像MySQL匹配反對在2臺服務器上給出2個不同的結果

Amazing Product Name/Exp 

並運行以下查詢:

SELECT name, MATCH(name) AGAINST('amazing,name,exp' IN BOOLEAN MODE) AS relevance 
FROM `product_description` 
WHERE MATCH(name) AGAINST('amazing,name,exp' IN BOOLEAN MODE) 

在我的PC相關領域顯示2個,而在服務器上它的顯示3,因爲它應該。我的電腦上的數據是從服務器轉儲的。兩者都使用相同的字符集。 MySQL版本雖然不同,但PC,5.5.39,Server:5.1.73-1-log,但我不認爲這會有所作爲?

我比較了每個charset xml文件,它們是相同的。我不相信服務器源代碼已被更改並重新編譯。這是基於我在這裏讀到的:http://dev.mysql.com/doc/refman/5.5/en/fulltext-fine-tuning.html

我一直認爲這種默認行爲是斜線將被視爲空間或字分離字符或任何。

任何人都可以闡明他們爲什麼會有所不同?

回答

0

我找到了原因,我把重點放在斜線是問題,但真正的原因是ft_min_word_len mysql系統變量。默認值是4,但該服務器是3我編輯的我的電腦上my.ini文件,並添加

ft_min_word_len = 3 

重新啓動mysql和重建索引數據,現在它顯示了相同的結果作爲服務器。

相關問題