做搜索查询的时候 怎么拆分词?

php中文网
发布: 2016-06-23 13:40:57
原创
1463人浏览过

比如说 
商品标题
字段title
秋冬新款大码女装宽松毛衣外套女开衫加厚中长款羊毛
商品评论
字段content
秋冬季室内穿着舒适,出外搭配棉羽背心也时尚应景。A字型裙摆式款型,可以遮挡腰腹赘肉。肩部承重力在织造设计方面值得升级改进。袖笼围度窄瘦,袖长偏短,用料与正身之阔绰相比,显寒碜。由此内里只能搭配无袖或薄型衬衫。本人159cm,135g,103cm胸围,39cm肩宽,35cm臂围,供参考。十分担心缩水率,唯恐宝贝是“一水衣”。 


搜索 大码 羊毛 外套

搜索 大码 羊毛 舒适 款型

这样怎么实现呢 应该是什么样思路呢 我开始想的是取出关键词 一个词一个词的'%'.$wd.'%'?那样也实现不了 几个词同时出现的时候


纳米搜索
纳米搜索

纳米搜索:360推出的新一代AI搜索引擎

纳米搜索 30
查看详情 纳米搜索

回复讨论(解决方案)

MySQL 提供了正则表达式检索,为何不用一下呢?

$word = '大码 羊毛 外套';$word = preg_replace('/\s+/', '|' ,trim($word));$sql = "select * from tbl_name where concat(title,content) REGEXP '$word'";
登录后复制

如果条件允许的话,使用第三方的全文检索驱动,效率要高很多

同时包含不好做,因为有出现的次序问题
虽然 大码.*羊毛 是一种途径
但 羊毛.*大码 是否也是可以的呢?

MySQL 的正则比较简陋,象 php 的这种写法是不支持的

$s = '秋冬新款大码女装宽松毛衣外套女开衫加厚中长款羊毛';$p = '/(?=.*羊毛)(?=.*大码).*/';echo preg_match($p, $s); //1 匹配成功
登录后复制


本来是为了简捷,弄复杂了就没意思了

同时包含不好做,因为有出现的次序问题
虽然 大码.*羊毛 是一种途径
但 羊毛.*大码 是否也是可以的呢?

MySQL 的正则比较简陋,象 php 的这种写法是不支持的

$s = '秋冬新款大码女装宽松毛衣外套女开衫加厚中长款羊毛';$p = '/(?=.*羊毛)(?=.*大码).*/';echo preg_match($p, $s); //1 匹配成功
登录后复制


本来是为了简捷,弄复杂了就没意思了



板板 为什么 我加上ID排序后 查询时间就从0.3 飙升到1.8  有办法解决吗

同时包含不好做,因为有出现的次序问题
虽然 大码.*羊毛 是一种途径
但 羊毛.*大码 是否也是可以的呢?

MySQL 的正则比较简陋,象 php 的这种写法是不支持的

$s = '秋冬新款大码女装宽松毛衣外套女开衫加厚中长款羊毛';$p = '/(?=.*羊毛)(?=.*大码).*/';echo preg_match($p, $s); //1 匹配成功
登录后复制


本来是为了简捷,弄复杂了就没意思了



我用时间排序 速度还不错 0.4秒 13条数据 为什么按ID 排序反而速度更慢 不明白

学习了学习了 

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号