基类:
<?php
/**
* +----------------------------------------------------------
* date: 2019/4/15 19:02
* +----------------------------------------------------------
* author: Raoxiaoya
* +----------------------------------------------------------
* describe: Elasticsearch助手类
* +----------------------------------------------------------
*/
namespace Logic;
use Core\Singleton;
class ElasticsearchBase
{
use Singleton;
public $index;
public $type;
public $number_of_shards = 5;
public $number_of_replicas = 1;
public $type_source_enabled = true;
public $properties;
public function checkParam(){
if(!isset($this->index) || !isset($this->type)){
return false;
}
}
public function sendResponse($code = 0, $msg = 'ok', $data = []){
return [
'code' => $code,
'msg' => $msg,
'data' => $data
];
}
/**
* 创建索引
* @return bool
*/
public function createIndex(){
if(!$this->checkParam()){
return false;
}
$params = [
'index' => $this->index,
'body' => [
'settings' => [
'number_of_shards' => $this->number_of_shards,// 分片数
'number_of_replicas' => $this->number_of_replicas // 副本数
],
'mappings' => [
$this->type => [
'_source' => [
'enabled' => $this->type_source_enabled
],
'properties' => $this->properties
]
]
]
];
$client = Factory::getEsClient();
// 索引是否存在
if($client->indices()->exists(['index'=>[$this->index]])){
return true;
}
$response = $client->indices()->create($params);
if(is_array($response) && $response['acknowledged'] && $response['shards_acknowledged']){
return true;
}else{
return false;
}
}
/**
* 写入记录
* @param array $body
* @return bool
*/
public function insertLog($body = []){
$client = Factory::getEsClient();
// 索引是否存在
if(!$client->indices()->exists(['index'=>[$this->index]])){
$this->createIndex();
}
$params = [
'index' => $this->index,
'type' => $this->type,
'body' => $body
];
$response = $client->index($params);
if(is_array($response) && $response['result'] == 'created' && $response['created']){
return true;
}else{
return false;
}
}
}
应用类:
<?php
/**
* +----------------------------------------------------------
* date: 2019/4/16 9:39
* +----------------------------------------------------------
* author: Raoxiaoya
* +----------------------------------------------------------
* describe: change_money_info_record记录
* +----------------------------------------------------------
*/
namespace Logic\EsGroup;
use Core\Singleton;
use Logic\ElasticsearchBase;
class EsOfChangeMoneyRecord extends ElasticsearchBase
{
use Singleton;
public $index = 'leba_new';
public $type = 'change_money_info_record';
public $number_of_shards = 5;
public $number_of_replicas = 1;
public $type_source_enabled = true;
public $properties = [
'player_id' => ['type' => 'integer',],
'agent_id' => ['type' => 'integer',],
'partner_id' => ['type' => 'integer',],
'parent_id' => ['type' => 'integer',],
'club_room_id' => ['type' => 'integer',],
'room_name' => ['type' => 'string',],
'club_room_no' => ['type' => 'integer',],
'game_id' => ['type' => 'integer',],
'game_name' => ['type' => 'string',],
'room_id' => ['type' => 'integer',],
'type' => ['type' => 'integer',],
'tax' => ['type' => 'integer',],
'water' => ['type' => 'integer',],
'money_type' => ['type' => 'integer',],
'money_value' => ['type' => 'integer',],
'begin_value' => ['type' => 'integer',],
'after_value' => ['type' => 'integer',],
'safe_box' => ['type' => 'integer',],
'ext' => ['type' => 'string',],
'time' => ['type' => 'integer',],
'param' => ['type' => 'string',],
];
}
使用:
$data = [
'player_id' => $record['change_money_player_id'],
'agent_id' => $promoteInfo['agent_id'],
'partner_id' => $promoteInfo['partner_id'],
'parent_id' => $promoteInfo['parent_id'],
'club_room_id' => $record['change_money_club_room_id'],
'room_name' => isset($room_name) ? $room_name['club_room_name'] : '',
'club_room_no' => $record['change_money_club_room_no'],
'game_id' => $record['change_money_game_id'],
'game_name' => $game_name ?? '',
'room_id' => $record['change_money_room_id'],
'type' => $record['change_money_type'],
'tax' => $record['change_money_tax'],
'water' => $record['change_money_water'],
'money_type' => $record['change_money_money_type'],
'money_value' => $record['change_money_money_value'],
'begin_value' => $record['change_money_begin_value'],
'after_value' => $record['change_money_after_value'],
'safe_box' => $player_info['player_safe_box'],
'ext' => $this->getTypeExt($record),
'time' => $record['change_money_time'],
'param' => is_array($record['change_money_param']) ? json_encode($record['change_money_param']) : $record['change_money_param']
];
$re = EsOfChangeMoneyRecord::getInstance()->insertLog($data);
elasticsearch-php使用积累
最新推荐文章于 2024-04-30 10:08:22 发布