tp5.0 建立資料的全量索引
阿新 • • 發佈:2021-09-28
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