php 使用 ES(ElasticSearch)
安装官方下载地址 :https://www.elastic.co/cn/downloads/elasticsearch官方的下载太慢了,windows的可以直接用下面的链接:https://pan.baidu.com/s/13-ejvOQITnAqBSKqLORXpA提取码:v8tp下载后执行 bin/elasticsearch.bat 稍等一会后 打开浏览器输入 http://127.0.0.1
·
安装
官方下载地址 :
https://www.elastic.co/cn/downloads/elasticsearch
官方的下载太慢了,windows的可以直接用下面的
链接:https://pan.baidu.com/s/13-ejvOQITnAqBSKqLORXpA
提取码:v8tp
下载后执行 bin/elasticsearch.bat 稍等一会后 打开浏览器输入 http://127.0.0.1:9200显示下面的内容就是安装成功了
在项目中运行
在项目中的直接composer.json 的require加入下面的内容 后面的是版本
"elasticsearch/elasticsearch": "~6.0"
加完之后在项目中执行
composer install
安装后就可以在项目中使用了
链接
use Elasticsearch\ClientBuilder;
require 'vendor/autoload.php';
public function __construct()
{
$this->client = ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();
}
创建索引
// 创建索引
public function create_index() { // 只能创建一次
$params = [
'index' => area,//索引名
'body' => [
'settings' => [
'number_of_shards' => 5, //数据分片数,默认为5,有时候设置为3
'number_of_replicas' => 0 //数据备份数,如果只有一台机器,设置为0
]
]
];
创建文档
/ 创建文档模板
public function create_mappings() {
$params = [
'index' => 'area',
'type' => 'areadata',
'include_type_name' =>true,
'body' => [
'areadata' => [
'_source' => [
'enabled' => true ,
],
'properties' => [
'id' => [
'type' => 'integer'
],
'pregionname' => [
'type' => 'text',
],
'cregionname' => [
'type' => 'text',
],
'payment' => [
'type' => 'integer'
],
'num' => [
'type' => 'integer',
],
'buyernick' => [
'type' => 'text',
],
'minpaytime' => [
'type' => 'date',
'format'=> 'yyyy-MM-dd HH:mm:ss'
],
'paytime' => [
'type' => 'date',
'format'=> 'yyyy-MM-dd HH:mm:ss'
],
'level' => [
'type' => 'text',
],
'tid' => [
'type' => 'text'
]
]
]
]
];
$ret = $this->client->indices()->putMapping($params);
}
插入数据
public function add_document()
{
$sql = "select * from area";
$data = M()->query($sql);
$params['index'] = 'area';
$params['type'] = 'areadata';
$flag = 0;
foreach ($data as $k =>$v){
$params['body'][]=array(
'index' => array( #注意create也可换成index
'_id'=>$k+1
),
);
$params['body'][]=array(
'pregionname' => $v['pregionname'],
'cregionname' =>$v['cregionname'],
'payment' =>$v['payment'],
'num' => $v['num'],
'buyernick' =>$v['buyernick'],
'minpaytime' => $v['minpaytime'],
'paytime' =>$v['paytime'],
'level' => $v['level'],
'tid'=>$v['tid']
);
$this->client->bulk($params);
var_dump($flag);
}
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)