1.首先下载对应的ES包,初始化方法引入扩展,定义es地址
2.举例一个方法
public function ebayTotal()
{
$where = array();
$country = Db::connect('db_con2')->table('t_country')->order('cn_name ASC')->select();
$this->assign('country', $country);
if ($this->request->isAjax()) {
$item = input('item');
$keyword = input('searContent');
$s_time = input('s_time');
$e_time = input('e_time');
$s_days7_total_sold = input('s_days7_total_sold');
$e_days7_total_sold = input('e_days7_total_sold');
$s_start_time = trim( input('s_start_time') );
$e_start_time = trim( input('e_start_time') );
$s_total_sold = input('s_total_sold');
$e_total_sold = input('e_total_sold');
$price_01 = (int)input('s_price');
$price_02 = (int)input('e_price');
$s_price = sprintf("%.2f", $price_01);
$e_price = sprintf("%.2f", $price_02);
$categroy_one = input('categroy_one');
$categroy_two = input('categroy_two');
$categroy_three = input('categroy_three');
$store_name = input('store_name');
$site = input('site');
$field = input('field');
$order = input('order');
if( !empty($field) && !empty($order) )
{
$searchParams['body']['sort'] = array(
$field=>array(
'order'=> $order
),
);
}else{
$searchParams['body']['sort'] = array(
'startTime'=>array(
'order'=> 'desc'
),
);
}
$searchParams['index'] = 'ebayhistory';
$searchParams['type'] = 'ebayhistory';
$page =intval(input('get.page'));
$limit = intval(input('get.limit'));
$searchParams['from'] = ($page-1)*$limit;
$searchParams['size'] = $limit;
if ( !empty($keyword) )
{
$searchParams['body']['query']['bool']['must'][]['match']['productName'] = $keyword ;
}
if ( !empty($store_name) )
{
$searchParams['body']['query']['bool']['must'][]['match']['storeName'] = $store_name;
}
if ( !empty($item) )
{
$searchParams['body']['query']['bool']['must'][]['match']['item'] = $item ;
}
if ( !empty($s_days7_total_sold) )
{
$searchParams['body']['query'][]['range']= array(
'days7TotalSold.keyword' => array(
'gte' => $s_days7_total_sold,
)
);
}
if ( !empty($e_days7_total_sold) )
{
$searchParams['body']['query'][]['range']= array(
'days7TotalSold.keyword' => array(
'lte' => $e_days7_total_sold
)
);
}
if ( !empty($s_days7_total_sold) && !empty($e_days7_total_sold) )
{
$searchParams['body']['query'][]['range']= array(
'days7TotalSold.keyword' => array(
'gte' => $s_days7_total_sold,
'lte' => $e_days7_total_sold
)
);
}
if ( !empty($s_start_time) )
{
$sstr = strtotime($s_start_time);
$sTime =str_pad($sstr,13,"0");
$searchParams['body']['query']['bool']['must'][]['range']= array(
'startTime' => array(
'gte' => $sTime,
)
);
}
if ( !empty($e_start_time) )
{
$estr = strtotime($e_start_time);
$eTime =str_pad($estr,13,"0");
$searchParams['body']['query']['bool']['must'][]['range']= array(
'startTime' => array(
'lte' => $eTime
)
);
}
if ( !empty($s_start_time) && !empty($e_start_time) )
{
$searchParams['body']['query']['bool']['must'][]['range']= array(
'startTime' => array(
'gte' => $sTime,
'lte' => $eTime
)
);
}
if ( !empty($s_total_sold))
{
$searchParams['body']['query']['bool']['must'][]['range'] = array(
'totalSold' => array(
'gte' => $s_total_sold,
)
);
}
if ( !empty($e_total_sold) )
{
$searchParams['body']['query']['bool']['must'][]['range'] = array(
'totalSold' => array(
'lte' => $e_total_sold
)
);
}
if ( !empty($s_total_sold) && !empty($e_total_sold) )
{
$searchParams['body']['query']['bool']['must'][]['range'] = array(
'totalSold' => array(
'gte' => $s_total_sold,
'lte' => $e_total_sold
)
);
}
if ( !empty($price_01) )
{
$searchParams['body']['query']['bool']['must'][]['range'] = array(
'price' => array(
'gte' => $s_price,
)
);
}
if ( !empty($price_02) )
{
$searchParams['body']['query']['bool']['must'][]['range'] = array(
'price' => array(
'lte' => $e_price
)
);
}
if ( !empty($price_01) && !empty($price_02) )
{
$searchParams['body']['query']['bool']['must'][]['range'] = array(
'price' => array(
'gte' => $s_price,
'lte' => $e_price
)
);
}
if ( !empty($s_time) )
{
$sstrcreateTime = strtotime($s_time);
$screateTime =str_pad($sstrcreateTime,13,"0");
$searchParams['body']['query']['bool']['must'][]['range'] = array(
'createTime' => array(
'gte' => $screateTime
)
);
}
if ( !empty($e_time) )
{
$estrcreateTime = strtotime($e_time);
$ecreateTime =str_pad($estrcreateTime,13,"0");
$searchParams['body']['query']['bool']['must'][]['range'] = array(
'createTime' => array(
'lte' => $ecreateTime
)
);
}
if ( !empty($s_time) && !empty($e_time) )
{
$searchParams['body']['query']['bool']['must'][]['range'] = array(
'createTime' => array(
'gte' => $screateTime,
'lte' => $estrcreateTime
)
);
}
$categroy_ids='';
if ( !empty($categroy_three) )
{
$categroy_ids = $categroy_three;
}
else
{
if ( !empty($categroy_one) )
{
$categroy_ids='';
$map['firstcategroy'] = $categroy_one;
$map['site'] = $site;
$categroy_id = Db::connect('db_con2')->table('ebay_classify')
->field('categroy_id')
->where($map)->select();
foreach ($categroy_id as $val){
$categroy_ids.=$val['categroy_id']." ";
}
}
if ( !empty($categroy_two) )
{
$categroy_ids='';
$map['secondcategroy'] = $categroy_two;
$map['site'] = $site;
$categroy_id = Db::connect('db_con2')->table('ebay_classify')
->field('categroy_id')
->where($map)->select();
foreach ($categroy_id as $val){
$categroy_ids.=$val['categroy_id']." ";
}
}
}
if(!empty($categroy_one)||!empty($categroy_two)||!empty($categroy_three)){
$searchParams['body']['query']['bool']['must'][]['match']['categroyId'] = $categroy_ids ;
}
if ( !empty($site) )
{
$searchParams['body']['query']['bool']['must'][]['match']['site'] = $site ;
}
$retDoc = $this->client->search($searchParams);
$count= $retDoc['hits']['total'];
$list = $retDoc['hits']['hits'];
$res = array();
$data = array();
foreach ($list as $key => $val) {
$res[$key]['item'] = $val['_source']['item'];
$res[$key]['img_url'] = $val['_source']['imgUrl'];
$res[$key]['category_name'] = $this->get_cat_ebay($val['_source']['categroyId'],$val['_source']['site']);
$res[$key]['category_name_01'] = $this->get_cat_ebay_01($val['_source']['categroyId'],$val['_source']['site']);
$res[$key]['category_name_02'] = $this->get_cat_ebay_02($val['_source']['categroyId'],$val['_source']['site']);
$res[$key]['product_name'] = $val['_source']['productName'];
$res[$key]['price'] = $val['_source']['price'];
$res[$key]['days7_total_sold'] = $val['_source']['days7TotalSold'];
$res[$key]['totalSold'] = $val['_source']['totalSold'];
$res[$key]['startTime'] = $val['_source']['startTime'];
$res[$key]['product_url'] = $val['_source']['productUrl'];
$res[$key]['store_url'] = $val['_source']['storeUrl'];
$res[$key]['currency'] = $val['_source']['currency'];
$res[$key]['shippingsummary'] = $val['_source']['shippingSummary'];
$res[$key]['createTime'] = $val['_source']['createTime'];
$res[$key]['store_name'] = $val['_source']['storeName'];
$bool=$this->pipei_shopname($val['_source']['storeName']);
if(!empty($bool)){
$res[$key]['is_jk_new']=$bool['is_new'];
$res[$key]['is_jk_all']=$bool['is_all'];
}
$res[$key]['site'] = $this->get_country( $val['_source']['site']);
$res[$key]['sitenum'] = $val['_source']['site'];
}
$data['code'] = 0;
$data['msg'] = '';
$data['count'] = $count;
$data['data'] = $res;
$data['searchParams'] = $searchParams;
return json($data);
}
return $this->fetch('ebaytotal');
}