2011-08-22 67 views
2

我有一個搜索引擎。當用戶鍵入搜索關鍵字時,我必須從表中選擇一些數據。MySql select question

我想找到「喜歡」或者:

SELECT id,text FROM example WHERE text LIKE '$search' 

由於文本列通常有字的負荷在它和搜索詞總是包含了幾句話,我沒有得到準確的結果。 有沒有其他方法可以做到這一點?

+0

您是否考慮過FULLTEXT搜索?我會自己提供更多關於它們的信息,但我對MySQL並不擅長,真的!不過,如果你有興趣,快速谷歌會告訴你更多的信息。 – Pete171

回答

3

它被稱爲全文索引,但目前在InnoDB中不支持,僅在MyISAM中。另一種方法是使用第三方索引,就像Lucene的,Solr的(它提供了對Lucene的頂級網絡服務接入),獅身人面像......

0

如果您的表是MyISAM數據,您可以啓用全文搜索:

ALTER TABLE table ADD FULLTEXT idx_text (`text`); 
0

你可以看看MySQL Fulltext機制,它提供了一種相當容易使用的自然語言搜索。

0

通常,搜索引擎正在使用樹狀數據結構進行快速查找,並使用某種圖形來對搜索結果進行加權。也許你想查看一下trie數據結構和空間填充曲線。如果你想比較兩個文件,後者很有用。例如,如果您對所有單詞進行排序和計數,則可以執行熱圖。