From 3bc2092b7732a33db738e12afde32645e49d5c47 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Wed, 2 May 2012 18:18:17 +0200 Subject: [PATCH] automatic mapping setup for elasticsearch through setupcheck --- src/phorkie/Database/Setup/Elasticsearch.php | 73 ++++++++++++++++++++ src/phorkie/SetupCheck.php | 7 ++ 2 files changed, 80 insertions(+) create mode 100644 src/phorkie/Database/Setup/Elasticsearch.php diff --git a/src/phorkie/Database/Setup/Elasticsearch.php b/src/phorkie/Database/Setup/Elasticsearch.php new file mode 100644 index 0000000..acf4bfc --- /dev/null +++ b/src/phorkie/Database/Setup/Elasticsearch.php @@ -0,0 +1,73 @@ +searchInstance = $GLOBALS['phorkie']['cfg']['elasticsearch']; + } + + public function setup() + { + //create mapping + //mapping for repositories + $r = new \HTTP_Request2( + $this->searchInstance . 'repo/_mapping', + \HTTP_Request2::METHOD_PUT + ); + $r->setBody( + json_encode( + (object)array( + 'repo' => (object)array( + 'properties' => (object)array( + 'id' => (object)array( + 'type' => 'long' + ), + 'description' => (object)array( + 'type' => 'string', + 'boost' => 2.0 + ) + ) + ) + ) + ) + ); + $r->send(); + + //mapping for files + $r = new \HTTP_Request2( + $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(); + } + +} + +?> diff --git a/src/phorkie/SetupCheck.php b/src/phorkie/SetupCheck.php index ba52d42..0bb632f 100644 --- a/src/phorkie/SetupCheck.php +++ b/src/phorkie/SetupCheck.php @@ -28,6 +28,7 @@ class SetupCheck $sc->checkDeps(); $sc->checkDirs(); $sc->checkGit(); + $sc->checkDatabase(); } public function checkDeps() @@ -67,6 +68,12 @@ class SetupCheck } } + public function checkDatabase() + { + $dbs = new Database_Setup_Elasticsearch(); + $dbs->setup(); + } + public function fail($msg) { throw new Exception($msg); -- 2.30.2