MySql选择问题

时间:2011-08-22 10:52:05

标签: php mysql select

我有一个搜索引擎。当用户输入搜索关键字时,我必须从表格中选择一些数据。

我想找到'LIKE'的替代品:

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

因为文本列中通常包含大量单词,而搜索词总是包含几个单词,所以我得不到准确的结果。 还有其他方法吗?

4 个答案:

答案 0 :(得分:3)

它被称为全文索引,但目前它在InnoDB中不受支持,仅在MyISAM中。另一种方法是使用第三方索引,如Lucene,Solr(在Lucene上提供Web服务访问),Sphinx ......

答案 1 :(得分:0)

如果您的表格是MyISAM,则可以启用全文搜索:

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

答案 2 :(得分:0)

您可以查看MySQL Fulltext机制,它以相当简单易用的方式提供自然语言搜索。

答案 3 :(得分:0)

通常,搜索引擎使用树数据结构进行快速查找,使用某种图形来加权搜索结果。也许你想要研究一个特里数据结构和空间填充曲线。如果要比较2个文档,后者很有用。例如,如果您对所有单词进行排序和计数,则可以执行热图。

相关问题