有沒有簡短的方法來檢查字符串列表是否是%LIKE%給定的字符串?檢查其他字符串的列表是否爲%LIKE%另一個字符串
例如:
書 動物 一個
都願意滿足這一條件的 「一本關於動物」?
我知道我可以寫出標題像'%book%'和'%animal%'LIKE標題等,但這似乎很笨拙。
我使用它作爲自動完成,我返回結果中每個單詞的結果。
有沒有簡短的方法來檢查字符串列表是否是%LIKE%給定的字符串?檢查其他字符串的列表是否爲%LIKE%另一個字符串
例如:
書 動物 一個
都願意滿足這一條件的 「一本關於動物」?
我知道我可以寫出標題像'%book%'和'%animal%'LIKE標題等,但這似乎很笨拙。
我使用它作爲自動完成,我返回結果中每個單詞的結果。
隊友......使檢索列進 「全文」 colums,然後做
SELECT * FROM books WHERE MATCH(fulltext_column) AGAINST('animal book a')
最佳途徑。 :)看到http://devzone.zend.com/article/1304
你應該看看http://lucene.apache.org/solr/,它讓你索引你的數據,然後可以給一個REST API,你可以調用它來填充自動完成下拉列表。
感謝您的提示..現在,雖然我是一種截止日期,所以我想得到這個與MySQL的工作 – babonk 2010-08-14 22:04:54
據我所知,你有兩個選擇:
1)有很多的WHERE子句就像你有執行查詢。
2)維護列的所有單詞的副本排序。然後,你可以搜索排序令牌和執行查詢:
SELECT * FROM Table WHERE Title_sorted LIKE "%a%animal%book%"
是的,你也可以使用SOLR,但在列表中沒有可以做的選項(2)。 – 2010-08-14 22:05:40
選項2需要3個單詞。 – kennytm 2010-08-14 22:07:16
對不起,我前一陣子沒有回覆。有一個原因,你維護一個單獨的,排序的列;) – 2010-09-14 21:24:49
MySQL有一個全文搜索索引,我建議你看看,要得到有效的結果。使用Lucene可能僅僅是一個自動完成的矯枉過正。
是否有意義使用FULLTEXT搜索自動完成?我認爲你需要完美的自動完成%LIKE%精度。 – babonk 2010-08-14 22:09:30
我想你是誤會了'LIKE'操作的語法。 – Timwi 2010-08-14 22:04:30
只是輸入錯誤..固定 – babonk 2010-08-14 22:10:03