1
比方說,我有一個行:MySQL的搜索中國文字
一天吃一個蘋果
有人進入作爲查詢:
天蘋
我應該分手的字符在查詢中,並單獨對每個字符執行LIKE % %
匹配,還是有更簡單的方法來獲取包含兩個字符之一的行? FULLTEXT不適用於CJK字符。
謝謝!
比方說,我有一個行:MySQL的搜索中國文字
一天吃一個蘋果
有人進入作爲查詢:
天蘋
我應該分手的字符在查詢中,並單獨對每個字符執行LIKE % %
匹配,還是有更簡單的方法來獲取包含兩個字符之一的行? FULLTEXT不適用於CJK字符。
謝謝!
假設您正在搜索字符串中的所有查詢字符並關注字符順序。
首先拆分用戶查詢。說天蘋
至天
和蘋
。
然後構造一個帶有LIKE
和%
的SQL查詢,例如WHERE x LIKE '%天%蘋%'
。
對於甚至有人甚至進入天蘋的人來說,這可能會很奇怪 - 首先,它不代表任何東西(除了「天蘋果」或「天空蘋果」或「天堂蘋果」)。其次,如果他們在尋找中文的東西,他們會用一天(「一天」/「一天」或蘋果(「蘋果」))的實際詞語,我不認爲任何數量的「LIKE% ''會幫助那些毫無意義的搜索,就像是在英語中搜索'd app'找到「每天吃一個蘋果」 – 2010-04-18 10:30:49
也許第一個詞的界限是錯誤的,但如果有人搜索:'一天蘋果',這個問題仍然適用,我想我必須將它們分開 – ash 2010-04-18 21:31:12
您需要找到某種解析算法來確定中文「單詞」究竟是什麼,它可以是1到5個字符(有時候更多的是地理和其他方面的東西),我首先看到其他人如www.baidu.com或開源項目是如何做到的,在英語中用單詞(但不是專有名詞)被一個空格字符分隔。總是有www.elance.com以及:) – 2010-04-19 13:51:45