跳转到主内容
极星编程网:以代码为星,赴技术山海!

求PHP分词搜索按匹配数量排序方法

首先,分词功能已做好。

比如搜索“高级php教程”,能提取“高级 php 教程”

现在要做的就是按匹配数量来排序。同时含有所有词的内容排第一、含有两个词的排第二,只有一个词的排最后求问大神这个功能怎么实现?

回复讨论(解决方案)如果不使用 全文检索 的话,你的要求虽可实现,但效率极低(联合查询)

但是 mysql 的 全文检索 又不支持中文,这就需要安装第三方软件通常安装第三方软件是需要付出些代价的另一解决方案是预先将分词后的文章以十六进制内码方式存入数据库,在使用 mysql 的全文检索但这需要多出至少一倍的存储空间自己抉择吧如果不使用 全文检索 的话,你的要求虽可实现,但效率极低(联合查询)

但是 mysql 的 全文检索 又不支持中文,这就需要安装第三方软件通常安装第三方软件是需要付出些代价的另一解决方案是预先将分词后的文章以十六进制内码方式存入数据库,在使用 mysql 的全文检索但这需要多出至少一倍的存储空间自己抉择吧版主大哥,可能我没有表述清楚。

打个比方,有三个文章标题是这样的:

1、教程下载

2、高级PHP教程下载

3、PHP教程下载

我用关键词搜索:“高级PHP教程”,三个文章标题都要能出来,

排序要像下面这样:

1、高级PHP教程下载《匹配到三个关键词》

2、PHP教程下载《匹配到两个关键词》

3、教程下载《匹配到一个关键词》

求实现思路和方法没有where的?似乎还是不行,不过先谢谢版本了。

哦,漏了 where自己补上吧,反正毫无实际意义你这种情况应该使用全文索引的。

可以考虑Coreseek + Sphinx参考: http://www.cnblogs.com/yjf512/p/3581869.html看来分词搜索真的是个坑啊真心感谢两位版主的热心解答你解决了吗,我现在也想这样弄啊,求解

相关文章