Low-level Elasticsearch Thrift transport plugin. The library is compatible with Elasticsearch 1.3.X
- Apache Thrift 0.9 or higher
- Elasticsearch 1.0.0 or higher with Thrift transport plugin
[https://github.com/elasticsearch/elasticsearch-transport-thrift]
Elasticsearch Thrift Client (Thrift extension installed) almost 3x times faster than Elasticsearch Official PHP Client
-
Install Thrift C++ Transport Extension for performance (Optional but recommended)
cd lib/ThriftExt/thrift_protocol phpize --clean && phpize ./configure make sudo make install
-
Create
composer.json
:{ "require" : { "trk54ylmz/elasticsearch-thrift": "dev-master" } }
-
Include
vendor/autoload.php
require 'vendor/autoload.php';
$elasticsearch = new Elasticsearch\Client();
$body = '
{
"query" : {
"match_all" : {}
}
}
';
$elasticsearch->setIndex('twitter');
$elasticsearch->setType('users');
$elasticsearch->setBody($body);
$result = $elasticsearch->search();
var_dump($result->hits);
$elasticsearch = new Elasticsearch\Client();
$body = array(
'username' => 'trK54Ylmz',
'email' => '[email protected]',
'country' => 'TR',
'logged' => false
);
$elasticsearch->setIndex('twitter');
$elasticsearch->setType('users');
$elasticsearch->setBody($body);
$result = $elasticsearch->index();
$elasticsearch = new Elasticsearch\Client();
$elasticsearch->setIndex('twitter');
$elasticsearch->setType('users');
$elasticsearch->setId('1');
$result = $elasticsearch->get();
$elasticsearch = new Elasticsearch\Client();
$body = array(
'doc' => array(
'logged' => false
)
);
$elasticsearch->setIndex('twitter');
$elasticsearch->setType('users');
$elasticsearch->setId('1');
$elasticsearch->setBody($body);
$elasticsearch->update();
$elasticsearch = new Elasticsearch\Client();
$elasticsearch->setIndex('twitter');
$elasticsearch->setType('users');
$elasticsearch->setId('1');
$elasticsearch->delete();
- Advanced DSL
- Mapping feature
- Cluster management