2010-04-18 31 views
1

比方說,我有一個行:MySQL的搜索中國文字

一天吃一個蘋果

有人進入作爲查詢:

天蘋

我應該分手的字符在查詢中,並單獨對每個字符執行LIKE % %匹配,還是有更簡單的方法來獲取包含兩個字符之一的行? FULLTEXT不適用於CJK字符。

謝謝!

+2

對於甚至有人甚至進入天蘋的人來說,這可能會很奇怪 - 首先,它不代表任何東西(除了「天蘋果」或「天空蘋果」或「天堂蘋果」)。其次,如果他們在尋找中文的東西,他們會用一天(「一天」/「一天」或蘋果(「蘋果」))的實際詞語,我不認爲任何數量的「LIKE% ''會幫助那些毫無意義的搜索,就像是在英語中搜索'd app'找到「每天吃一個蘋果」 – 2010-04-18 10:30:49

+0

也許第一個詞的界限是錯誤的,但如果有人搜索:'一天蘋果',這個問題仍然適用,我想我必須將它們分開 – ash 2010-04-18 21:31:12

+1

您需要找到某種解析算法來確定中文「單詞」究竟是什麼,它可以是1到5個字符(有時候更多的是地理和其他方面的東西),我首先看到其他人如www.baidu.com或開源項目是如何做到的,在英語中用單詞(但不是專有名詞)被一個空格字符分隔。總是有www.elance.com以及:) – 2010-04-19 13:51:45

回答

1

假設您正在搜索字符串中的所有查詢字符並關注字符順序。

首先拆分用戶查詢。說天蘋

然後構造一個帶有LIKE%的SQL查詢,例如WHERE x LIKE '%天%蘋%'