1. 程式人生 > 其它 >tp5.0 建立資料的全量索引

tp5.0 建立資料的全量索引

1.專案目錄/application/cli/controller/Es.php (也可自定義)

<?php

namespace app\cli\controller;

use think\Controller;
use think\Request;

class Es extends Controller
{
    /**
     * 建立商品索引並匯入全部商品文件
     * cd public
     * php index.php /cli/Es/createAllGoodsDocs
     */
    public function createAllGoodsDocs()
    {
        
try{ //例項化ES工具類 $es = new \tools\es\MyElasticsearch(); //建立索引 if($es->exists_index('goods_index')) $es->delete_index('goods_index'); $es->create_index('goods_index'); $i = 0; while(true){ //查詢商品資料 每次處理1000條 這裡是重新資料庫 可自行操作
$goods = \app\common\model\Goods::with('category')->field('id,goods_name,goods_desc, goods_price,goods_logo,cate_id')->limit($i, 1000)->select(); if(empty($goods)){ //查詢結果為空,則停止 break; } //新增文件
foreach($goods as $v){ unset($v['cate_id']); $es->add_doc($v['id'],$v, 'goods_index', 'goods_type'); } $i += 1000; } die('success'); }catch (\Exception $e){ $msg = $e->getMessage(); die($msg); } } }

2.在命令列裡面切換到pinlic目錄下 執行命令 這裡根據自己定義的方法路徑來

php index.php /cli/Es/createAllGoodsDocs

注:其中,使用了封裝的ES工具類 : 專案目錄/extends/tools/es/MyElasticsearch.php