trk54ylmz / elasticsearch-thrift
Elasticsearch Thrift client
Installs: 25
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 4
Forks: 3
Open Issues: 0
Language:Shell
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-09-28 16:20:34 UTC
README
Low-level Elasticsearch Thrift transport plugin. The library is compatible with Elasticsearch 1.3.X
Requirements
- Apache Thrift 0.9 or higher
- Elasticsearch 1.0.0 or higher with Thrift transport plugin
[https://github.com/elasticsearch/elasticsearch-transport-thrift]
Performance
Elasticsearch Thrift Client (Thrift extension installed) almost 3x times faster than Elasticsearch Official PHP Client
Usage
-
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
Search
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);
Index a document
$elasticsearch = new Elasticsearch\Client(); $body = array( 'username' => 'trK54Ylmz', 'email' => 'tarik@example.com', 'country' => 'TR', 'logged' => false ); $elasticsearch->setIndex('twitter'); $elasticsearch->setType('users'); $elasticsearch->setBody($body); $result = $elasticsearch->index();
Get a document
$elasticsearch = new Elasticsearch\Client(); $elasticsearch->setIndex('twitter'); $elasticsearch->setType('users'); $elasticsearch->setId('1'); $result = $elasticsearch->get();
Update a document
$elasticsearch = new Elasticsearch\Client(); $body = array( 'doc' => array( 'logged' => false ) ); $elasticsearch->setIndex('twitter'); $elasticsearch->setType('users'); $elasticsearch->setId('1'); $elasticsearch->setBody($body); $elasticsearch->update();
Delete a document
$elasticsearch = new Elasticsearch\Client(); $elasticsearch->setIndex('twitter'); $elasticsearch->setType('users'); $elasticsearch->setId('1'); $elasticsearch->delete();
Todo
- Advanced DSL
- Mapping feature
- Cluster management