From: Christian Weiske Date: Tue, 3 Nov 2015 05:16:52 +0000 (+0100) Subject: Support elasticsearch 2.0. X-Git-Tag: v0.7.0~3 X-Git-Url: https://git.cweiske.de/phorkie.git/commitdiff_plain/49a42cb5ac2e29668d2ac584e1a84d9818b047ea Support elasticsearch 2.0. Requires the delete-by-query plugin for elasticsearch. --- diff --git a/README.rst b/README.rst index 6916a35..53293cb 100644 --- a/README.rst +++ b/README.rst @@ -155,9 +155,15 @@ phorkie makes use of an Elasticsearch__ installation, if you have one. It is used to provide search capabilities and the list of recent pastes. -Elasticsearch version 1.3 is supported. +Elasticsearch version 2.0 is supported. + +You have to install the `delete-by-query`__ plugin:: + + $ cd /usr/share/elasticsearch + $ bin/plugin install delete-by-query __ http://www.elasticsearch.org/ +__ https://www.elastic.co/guide/en/elasticsearch/plugins/2.0/plugins-delete-by-query.html Setup diff --git a/src/phorkie/Database/Adapter/Elasticsearch/HTTPRequest.php b/src/phorkie/Database/Adapter/Elasticsearch/HTTPRequest.php index 24487bc..7c76af2 100644 --- a/src/phorkie/Database/Adapter/Elasticsearch/HTTPRequest.php +++ b/src/phorkie/Database/Adapter/Elasticsearch/HTTPRequest.php @@ -18,7 +18,7 @@ class Database_Adapter_Elasticsearch_HTTPRequest extends \HTTP_Request2 } $js = json_decode($res->getBody()); if (isset($js->error)) { - $error = $js->error; + $error = json_encode($js->error); } else { $error = $res->getBody(); } diff --git a/src/phorkie/Database/Adapter/Elasticsearch/Setup.php b/src/phorkie/Database/Adapter/Elasticsearch/Setup.php index bb76d54..1e632ba 100644 --- a/src/phorkie/Database/Adapter/Elasticsearch/Setup.php +++ b/src/phorkie/Database/Adapter/Elasticsearch/Setup.php @@ -33,6 +33,38 @@ class Database_Adapter_Elasticsearch_Setup implements Database_ISetup ); $r->send(); + //mapping for files + $r = new Database_Adapter_Elasticsearch_HTTPRequest( + $this->searchInstance . 'file/_mapping', + \HTTP_Request2::METHOD_PUT + ); + $r->setBody( + json_encode( + (object)array( + 'file' => (object)array( + '_parent' => (object)array( + 'type' => 'repo' + ), + 'properties' => (object)array( + 'name' => (object)array( + 'type' => 'string', + 'boost' => 1.5 + ), + 'extension' => (object)array( + 'type' => 'string', + 'boost' => 1.0 + ), + 'content' => (object)array( + 'type' => 'string', + 'boost' => 0.8 + ) + ) + ) + ) + ) + ); + $r->send(); + //create mapping //mapping for repositories $r = new Database_Adapter_Elasticsearch_HTTPRequest( @@ -45,7 +77,7 @@ class Database_Adapter_Elasticsearch_Setup implements Database_ISetup 'repo' => (object)array( '_timestamp' => (object)array( 'enabled' => true, - 'path' => 'tstamp', + //'path' => 'tstamp', ), 'properties' => (object)array( 'id' => (object)array( @@ -73,38 +105,6 @@ class Database_Adapter_Elasticsearch_Setup implements Database_ISetup ) ); $r->send(); - - //mapping for files - $r = new Database_Adapter_Elasticsearch_HTTPRequest( - $this->searchInstance . 'file/_mapping', - \HTTP_Request2::METHOD_PUT - ); - $r->setBody( - json_encode( - (object)array( - 'file' => (object)array( - '_parent' => (object)array( - 'type' => 'repo' - ), - 'properties' => (object)array( - 'name' => (object)array( - 'type' => 'string', - 'boost' => 1.5 - ), - 'extension' => (object)array( - 'type' => 'string', - 'boost' => 1.0 - ), - 'content' => (object)array( - 'type' => 'string', - 'boost' => 0.8 - ) - ) - ) - ) - ) - ); - $r->send(); } }