以往制作PHP 站内搜索都是使用的 where title like '%$kw%' OR content like '%$kw%' 这样模式,一直没用FULLTEXT,数据表是MYISAM的。
1)是否有必要使用 FULLTEXT,效率相比是否会提高? where match(title,content) against ('$kw')
2)对于数据表会有什么影响?增加存储空间?拖慢查询?
title varchar(60) NOT NULLcontent text NOT NULL
刚刚发现Yii2 貌似不支持 fulltext? yii2 内建db 默认 使用PDO ,PDO支持fulltext 吗
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
中文分词比英文复杂的多,
mysql 的FULLTEXT 貌似是不支持中文分词的,所以,你还是用sphinx,solr等引擎吧。
赞同楼上讲的,mysql就不适合干这种事。
sphinx、solr、lucene、elasticsearch 等
表加上全文索引后存储空间肯定是要增加的,而且也会影响插入速度,全文搜索还是不要用MYSQL了,加了fulltext后查询也不会很快。PHP可以考虑用solr吧,PHP有对应的扩展。
xunsearch吧。如果你觉得segment本身的搜索不错的话。