jaeger / e-search
Elasticsearch5 PHP Api
dev-master
2016-12-09 07:45 UTC
Requires
- guzzlehttp/guzzle: ^6.2
This package is auto-updated.
Last update: 2024-12-09 16:31:24 UTC
README
Elasticsearch5 PHP Api
问:为什么官方已经有了Elasticsearch的PHP包,我还要写一个? 答:任性
Install
composer require jaeger/e-search:dev-master
Code Example
$es = new \Jaeger\Es([ //服务器地址 'server_url'=>'http://localhost:9200', //索引 'index' => 'news', //类型 'type' => 'article' ]); //or $es = (new \Jaeger\Es())->setIndex('news')->setType('article');
Mapping 设置映射
$result = $es->setMapping([ 'title' => [ 'type' => 'text', 'analyzer' => 'ik_smart' ], 'content' => [ 'type' => 'text', 'analyzer' => 'ik_smart' ] ]);
Index/Update 索引数据/更新数据
$result = $es->index(1,[ 'id' => 1, 'title' => 'This is title', 'content' => 'This is content' ]);
Delete 删除数据
//delete document for id 1 $result = $es->delete(1); //delete all documents of current type $result = $es->delete();
Count 获取当前类型的文档总数量
$result = $es->count(); //or $result = $es->request('GET','_count');
Id 获取指定ID的文档
$result = $es->id(1);
//or
$result = $es->request('GET',1);
Search 搜索
$result = $es->search($query);
$query
can be an array,JSON string, or string.
1.Array
$query = [ 'query' => [ 'match' => [ 'content' => 'this is content' ] ], 'highlight' => [ 'fields' => [ //此处有坑 'content' => (object)[] ] ] ];
2. JSON String
$query = '{ "query" : { "match" : { "content" : "this is content" } }, "highlight": { "fields" : { "content" : {} } } }';
2. String
$query = 'this is content'; //or $query = 'content:this is content';
Other Command 其它命令
/** * send command 发送命令 * @param string $method GET,PUT,DELETE,etc * @param string $command '_search','_count','_mapping',etc * @param array|jsonString $data send command with data */ $result = $es->request($method,$command,$data); //example $result = $this->request('GET','_search',[ 'query' => [ 'match' => [ 'content' => 'this is content' ] ] ]);
Author
Jaeger JaegerCode@gmail.com