当前位置: 首页 > news >正文

tp5 关键词搜索商品时进行关键词拆分

记录:商品查询接口对搜索关键词进行拆分搜索

拆分方式:
1,正则匹配

	// 1. 清理并拆分关键词(支持中文+空格拆分)$keywords = array_filter(preg_split('/[\s]+/u', trim($keyword)),function($item) {return $item !== '';});

2,使用中文分词库Jieba-php拆分

// 安装Jieba分词库:composer require fukuball/jieba-php
use Fukuball\Jieba\Jieba;
use Fukuball\Jieba\Finalseg;// 初始化分词器
// Jieba::init();	//初始化大词典,对内存高消耗,不建议使用
Jieba::init(['mode' => 'default', 'dict' => 'small']);	//初始化小词典,对内存低消耗,推荐使用
Finalseg::init();// 执行分词
$keywords = Jieba::cut($keywords);
$keywords = array_unique(array_filter($keywords));  // 数组去重、过滤数组中的空字符串

最后,使用闭包函数对每个关键词搜索

$keywordsWhere  = '';
if($keywords){// 1.分词操作代码// 2.组合闭包查询$keywordsWhere = function ($query) use ($keywords) {foreach($keywords as $keyword){// // 每个关键词在多个字段中匹配(AND),即商品信息中包含所有的关键词// $query->where(function ($sub) use ($keyword) {//     $sub->where('goods_name', 'like', "%{$keyword}%")//         ->whereOr('content', 'like', "%{$keyword}%");// });// 每个关键词在多个字段中匹配(OR),即商品信息中包含任意一个关键词$query->whereOr(function ($sub) use ($keyword) {$sub->where('m.goods_name', 'like', "%{$keyword}%")->whereOr('m.content', 'like', "%{$keyword}%");});}};
}
http://www.xdnf.cn/news/500473.html

相关文章:

  • Slidev集成Chart.js:专业数据可视化演示文稿优化指南
  • 黄点追踪是什么?:揭秘打印机隐形识别机制的技术分析
  • windows编写和调试代码工具——IDE安装
  • QMK 宏(Macros)功能详解(实战部分)
  • muduo库TcpConnection模块详解——C++
  • CMake基础及操作笔记
  • C语言—再学习(结构体)
  • 【springcloud学习(dalston.sr1)】Zuul路由访问映射规则配置及使用(含源代码)(十二)
  • 玩转 AI · 思考过程可视化
  • 【gitee 初学者矿建仓库】
  • 【Ragflow】22.RagflowPlus(v0.3.0):用户会话管理/文件类型拓展/诸多优化更新
  • 51单片机课设基于GM65模块的二维码加条形码识别
  • python第二十八天
  • Oracle APEX IR报表下载CSV文件的方法
  • [Java] 方法和数组
  • FauxGen:一款由 CodeBuddy 主动构建的假数据生成器
  • 语音转文字
  • 使用Spring Boot与Spring Security构建安全的RESTful API
  • 基于大疆Mini 3无人机和指定软件工具链的完整3D建模工作
  • JavaScript防抖与节流全解析
  • C# lock
  • 端到端自动驾驶系统实战指南:从Comma.ai架构到PyTorch部署
  • 通义千问-langchain使用构建(三)
  • 2025年渗透测试面试题总结-百度面经(题目+回答)
  • YOLO (You Only Look Once)版本历程学习
  • Java泛型详解
  • Vue百日学习计划Day21-23天详细计划-Gemini版
  • Elasticsearch 官网阅读之 Term-level Queries
  • 关于软件测试开发的一些有趣的知识
  • ElasticSearch 8.x新特性面试题