一 使用mysql全文索引
1 将php中文分词系统将我们需要搜索得数据库字段进行分割成关键字
2 然后将分割得关键字绑定商品ID或者文章ID 插入另外一个关键字表,然后再配置上搜索权重,然后支持人工编辑关键字逐渐完善关键字
3 在关键字表中建立全文索引full_test,5.6之前不支持中文(可以用php将中文变成拼音存储),5.7之后支持中文全文索引。
4 mysql全文索引匹配用户搜索得关键字。
5 还可以用一张表记录用户得搜索字去统计搜索频率,提高关键字得命中率
注意:分词软件有 scws,结巴分词,PhpanAlysis等等
二使用sphinx搜索
1 wget http://sphinxsearch.com/files/sphinx-3.0.1-7fec4f6-linux-amd64.tar.gz
tar -zvxf sphinx-3.0.1-7fec4f6-linux-amd64.tar.gz && mv /sphinx-3.0.1-7fec4f6-linux-amd64.tar.gz /sphinx
2 cp sphinx.conf.dist sphinx.conf 然后修改sphinx.conf
3 生成索引 /usr/local/sphinx/bin/indexer --all
如果searchd处于运行状态,则执行 /usr/local/sphinx/bin/indexer --all --rotate
4 开启守护进程 /usr/local/sphinx/searched -c /usr/local/sphinx/etc/sphinx.conf
5 关闭守护进程 /usr/local/sphinx/searched -c /usr/local/sphinx/etc/sphinx.conf --close
注意:sphinx不支持中文分词,所以建议用coorseek或者迅搜等国内得开源软件