现在,我有一个包含25万条记录的表,现在我想为此创建自定义搜索引擎。
当我使用标准查询时SELECT * FROM table WHERE column1 LIKE '%word%' OR column2 LIKE '%word%' LIMIT 20
,它可以工作,但性能会降低,是否还有其他查询能以快速的性能给出相同的结果?
我将INNODB与mysql 5.0一起使用,因此无法添加FULLTEXT索引。
还有其他全文搜索技术。
您知道在MySQL 5.0中不能在InnoDB表中使用FULLTEXT索引,但是可以将可搜索的文本数据复制到MyISAM表中,并在其中使用FULLTEXT索引。我不建议使MyISAM表成为该数据的唯一副本。将其视为易失性副本,例如缓存,因为MyISAM非常容易受到损坏。
还有第三方文本搜索技术,例如Sphinx Search,Apache Solr,Xapian等。这些技术还涉及将文本数据复制到全文索引。
纯粹的InnoDB方法将是为文本数据创建一个N-gram索引。
我在演示全文搜索击倒中比较了其中一些方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句