You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yanzong/app/common/service/GoodsEs.php

166 lines
4.4 KiB

7 months ago
<?php
namespace app\common\service;
use app\common\library\elasticsearch\Client;
class GoodsEs
{
private Client $esService;
7 months ago
private $index_name = 'goods_list';
7 months ago
public function __construct()
{
7 months ago
$this->esService = Client::setEs('goods_list');
7 months ago
}
7 months ago
7 months ago
/**
* 查询商品列表
* @param $params
* @return
*/
public function list($params)
{
$page = 1;
$limit = 10;
7 months ago
// $body = [
// 'query' => [
// 'match_all' => []
// ],
// 'from' => ($page - 1) * $limit,
// 'size' => $limit,
// 'sort' => [
// 'id' => [
// 'order' => 'desc'
// ]
// ]
// ];
$data = $this->esService
// ->setDebug()
->equal(['intro' => ''])
7 months ago
->from(1)
7 months ago
->size(10)
->order(['id' => 'desc'])
7 months ago
->query();
dd($data);
7 months ago
}
/**
* 更新商品
*/
7 months ago
public function update($goods_id)
7 months ago
{
$goods_id = 1;
$doc = [
'id' => $goods_id,
'video_title' => '少爷的甜蜜良药',
'director' => '吴宇森',
'intro' => '吴宇森导演的《少爷的甜蜜良药》是吴宇森导演的经典作品,讲述了一个boyfriend和girlfriend的故事,boyfriend因为工作原因,被拒了girlfriend的offer,然后boyfriend和girlfriend一起去一个地方,然后boyfriend和girlfriend',
'cover' => 'https://oss-duanju-file.luochen.com/cover/202404/62249c6a-5f57-45cf-90ac-be6de5890ce0.jpg?x-oss-process=image/resize,m_fixed,h_400,w_360',
'episode_count' => '12',
'wechat_vid' => 'wx_vid_1',
'duration' => '01:02:03',
'service_types' => '2,3',
];
7 months ago
return $this->esService->update($goods_id, $doc);
7 months ago
}
7 months ago
/**
* 查询商品详情
*/
public function detail($goods_id)
{
$goods_id = 1;
$res = $this->esService->getDoc($goods_id);
var_dump($res);
}
7 months ago
/**
* 创建商品
* @return
*/
7 months ago
public function create($goods_id)
7 months ago
{
$goods_id = 1;
$doc = [
'id' => $goods_id,
'video_title' => '少爷的甜蜜良药',
'director' => '吴宇森',
'intro' => '吴宇森导演的《少爷的甜蜜良药》是吴宇森导演的经典作品,讲述了一个boyfriend和girlfriend的故事,boyfriend因为工作原因,被拒了girlfriend的offer,然后boyfriend和girlfriend一起去一个地方,然后boyfriend和girlfriend',
'cover' => 'https://oss-duanju-file.luochen.com/cover/202404/62249c6a-5f57-45cf-90ac-be6de5890ce0.jpg?x-oss-process=image/resize,m_fixed,h_400,w_360',
'episode_count' => '12',
'wechat_vid' => 'wx_vid_1',
'duration' => '01:02:03',
'service_types' => '2,3',
];
$res = $this->esService->addDoc($goods_id, $doc);
var_dump($res);
}
/**
* 删除商品
*/
7 months ago
public function delete($goods_id)
7 months ago
{
$res = $this->esService->deleteDoc($goods_id);
var_dump($res);
}
/**
* 创建商品Index
* @return void
* @throws Exception
*/
function createGoodsIndex()
{
$mapping = [
'properties' => [
7 months ago
'goods_id' => [
'type' => 'integer'
7 months ago
],
7 months ago
'goods_type' => [
'type' => 'keyword'
7 months ago
],
'director' => [
'type' => 'text',
"analyzer" => "ik_smart"
],
'intro' => [
'type' => 'text',
"analyzer" => "ik_smart"
],
'cover' => [
'type' => 'keyword'
],
'episode_count' => [
'type' => 'keyword'
],
'wechat_vid' => [
'type' => 'keyword'
],
'duration' => [
'type' => 'keyword'
],
'service_types' => [
'type' => 'keyword'
],
]
];
7 months ago
$res = $this->esService->createIndexNew($mapping);
7 months ago
var_dump($res);
}
}