ienaga / simple-elasticsearch-client
简单的ElasticSearch库。
1.0.0
2018-06-01 15:23 UTC
Requires
Requires (Dev)
- phpunit/phpunit: 4.8.*
This package is auto-updated.
Last update: 2024-09-24 12:37:49 UTC
README
PHP的ElasticSearch简单库
ElasticSearch版本
- 2.3.x
- 5.1.x
搜索
案例 - 1
SELECT * FROM `INDEX_NAME`.`TYPE_NAME` WHERE `statue` = 1;
use \SimpleElasticSearch\Client; $client = new new Client([ "end_point" => "URL" ]); $result = $client ->setIndex("INDEX_NAME") ->setType("TYPE_NAME") ->createFilter() // filter search start ->addAnd("status", $status) ->attach() // filter search end ->search(); // execute search
案例 - 2
SELECT * FROM `INDEX_NAME`.`TYPE_NAME` WHERE (`user_id` = 1 OR `user_id` = 2);
use \SimpleElasticSearch\Client; $client = new new Client([ "end_point" => "URL" ]); $result = $client ->setIndex("INDEX_NAME") ->setType("TYPE_NAME") ->createFilter() // filter search start ->addOr("user_id", 1) ->addOr("user_id", 2) ->attach() // filter search end ->search(); // execute search
案例 - 3
SELECT * FROM `INDEX_NAME`.`TYPE_NAME` WHERE `status` != 0;
use \SimpleElasticSearch\Client; $client = new new Client([ "end_point" => "URL" ]); $result = $client ->setIndex("INDEX_NAME") ->setType("TYPE_NAME") ->createFilter() // filter search start ->addNot("status", 0) ->attach() // filter search end ->search(); // execute search
案例 - 4
SELECT * FROM `INDEX_NAME`.`TYPE_NAME` WHERE `status` BETWEEN 0 AND 100;
use \SimpleElasticSearch\Client; $client = new new Client([ "end_point" => "URL" ]); $result = $client ->setIndex("INDEX_NAME") ->setType("TYPE_NAME") ->createFilter() // filter search start ->between("status", 0, 100) ->attach() // filter search end ->search(); // execute search
案例 - 5
SELECT * FROM `INDEX_NAME`.`TYPE_NAME` WHERE `status` > 100;
use \SimpleElasticSearch\Client; $client = new new Client([ "end_point" => "URL" ]); $result = $client ->setIndex("INDEX_NAME") ->setType("TYPE_NAME") ->createFilter() // filter search start ->operator("status", 100, "gt") ->attach() // filter search end ->search(); // execute search
结果
use \SimpleElasticSearch\Client; $client = new new Client([ "end_point" => "URL" ]); $result = $client ->setIndex("index name") ->setType("type name") ->createFilter() // filter search start ->addAnd("status", $status) // match case ->setFrom($offset) // offset ->setSize($limit) // limit ->addSort("price", $sort) // sort ->setAggregation("user_id") // group by ->attach() // filter search end ->search(); // execute search // found if ($result->isFound()) { // ArrayAccess, Iterator, Countable foreach ($result as $hit) { // Result Singular // $hit->getIndex(); // $hit->getType(); // $hit->getId(); // $hit->property; } }
数据创建
use \SimpleElasticSearch\Client; $client = new new Client([ "end_point" => "URL" ]); $query = [ "status" => 0, "price" => 100, "user_id" => 1, ]; $client ->setIndex("index name") ->setType("type name") ->setBody($query) ->create();
数据更新(复数)
use \SimpleElasticSearch\Client; $client = new new \SimpleElasticSearch\Client([ "end_point" => "URL" ]); $result = $client ->setIndex("index name") ->setType("type name") ->createFilter() ->addAnd("user_id", $userId) ->attach() ->search(); if ($result->isFound()) { foreach ($result as $hit) { $hit->status = 1; $client ->setIndex("index name") ->setType("type name") ->setId($hit["_id"]) ->setBody($hit->getSource()) ->update(); } }
数据更新(单数)
use \SimpleElasticSearch\Client; $client = new new \SimpleElasticSearch\Client([ "end_point" => "URL" ]); $result = $client ->setIndex("index name") ->setType("type name") ->setId("id name") ->get(); if ($result->isFound()) { $result->status = 1; $client ->setIndex($result->getIndex()) ->setType($result->getType()) ->setId($result->getId()) ->setBody($result->getSource()) ->update(); }
数据删除
use \SimpleElasticSearch\Client; $client = new new \SimpleElasticSearch\Client([ "end_point" => "URL" ]); $client ->setIndex("index name") ->setType("type name") ->setId("id name") ->delete();