thinkphp5 分词查询


首先:通过 composer 安装结巴分词模块

composer require fukuball/jieba-php:dev-master

以下是核心代码根据个人业务自行调整

<?php

namespace app\api\controller;
// 必须有,且内存不小于1024M
ini_set('memory_limit', '1024M');
use app\admin\library\Auth;
use app\common\controller\Api;
use fast\Random;
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
use PhpOffice\PhpSpreadsheet\Reader\Csv;
use PhpOffice\PhpSpreadsheet\Reader\Xls;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use think\exception\PDOException;
// 结巴分词PHP模块
use Fukuball\Jieba\Jieba;  //必须
use Fukuball\Jieba\Finalseg;
use Fukuball\Jieba\JiebaAnalyse;   //关键词提取
 
Jieba::init(); //必须
Finalseg::init();
JiebaAnalyse::init();
/**
 * 首页接口
 */
class Index extends Api
{
    protected $noNeedLogin = ['*'];
    protected $noNeedRight = ['*'];
    /**
     * 大数据获取
     */
    public function get_big_data(){
        $keyword = $this->request->request('seach');
        $where=[];
        if (!empty($keyword)) {
            // 使用关键词提取,返回 5 个 TF/IDF 权重最大的关键词,默认为 20 个
            $fenci =  JiebaAnalyse::extractTags($keyword, 5);
            $keywords_fenci = [];
            foreach ($fenci as $key => $value) {
                // 将关键词组合为 Like 所需格式的数组
                $keywords_fenci[] = '%' . $key. '%';
            }
            // 搜索标题和简介字段
            $where['name'] = array('like', $keywords_fenci);
        }
        $list = db('big_data')->where($where)->limit(0,100)->select();
        $this->success(__('获取成功'),$list);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值