现在我有一张超过250,000条记录的表,现在我想为此制作自定义搜索引擎。
当我使用标准查询SELECT * FROM table WHERE column1 LIKE '%word%' OR column2 LIKE '%word%' LIMIT 20
时,它可以正常工作但性能较慢,是否有其他查询能够以较快的性能提供相同的结果?
我将INNODB与mysql 5.0一起使用,因此我无法添加FULLTEXT索引。
答案 0 :(得分:1)
还有其他全文搜索技术。
您知道您无法在MySQL 5.0中的InnoDB表中使用FULLTEXT索引,但您可以将可搜索的文本数据复制到MyISAM表,并在那里使用FULLTEXT索引。我不建议将MyISAM表作为该数据的唯一副本。将其视为易失性副本,如缓存,因为MyISAM极易受到损害。
还有第三方文本搜索技术,如Sphinx Search,Apache Solr,Xapian等。这些还涉及将文本数据复制到全文索引。
纯粹的InnoDB方法是为文本数据创建一个N-gram索引。
我在演示文稿Fulltext Search Throwdown中比较了其中一些方法。