diff options
| author | Christian Weiske <cweiske@cweiske.de> | 2012-04-30 22:14:02 +0200 |
|---|---|---|
| committer | Christian Weiske <cweiske@cweiske.de> | 2012-04-30 22:14:02 +0200 |
| commit | c78bab0c18fb9db18408f1601280997ee8b0779f (patch) | |
| tree | c7b92ec3a04beddddf49c4af3ab3df32e1e77311 | |
| parent | d78df0d7b8025365c00c87f545c18a810eecbd5c (diff) | |
| download | phorkie-c78bab0c18fb9db18408f1601280997ee8b0779f.tar.gz phorkie-c78bab0c18fb9db18408f1601280997ee8b0779f.zip | |
first index and search test
| -rw-r--r-- | scripts/index.php | 109 | ||||
| -rw-r--r-- | scripts/search.php | 61 |
2 files changed, 170 insertions, 0 deletions
diff --git a/scripts/index.php b/scripts/index.php new file mode 100644 index 0000000..9a93488 --- /dev/null +++ b/scripts/index.php @@ -0,0 +1,109 @@ +<?php +//index repositories in elasticsearch + +namespace phorkie; +set_include_path( + __DIR__ . '/../src/' + . PATH_SEPARATOR . get_include_path() +); +spl_autoload_register( + function ($class) { + $file = str_replace(array('\\', '_'), '/', $class) . '.php'; + $hdl = @fopen($file, 'r', true); + if ($hdl !== false) { + fclose($hdl); + require $file; + } + } +); +require_once __DIR__ . '/../data/config.default.php'; +if (file_exists(__DIR__ . '/../data/config.php')) { + require_once __DIR__ . '/../data/config.php'; +} +if ($GLOBALS['phorkie']['cfg']['setupcheck']) { + SetupCheck::run(); +} + +//delete all repos +$r = new \HTTP_Request2( + 'http://localhost:9200/phorkie/repo/_query', + \HTTP_Request2::METHOD_DELETE +); +$r->setBody( + json_encode( + (object)array( + 'match_all' => (object)array() + ) + ) +); +$r->send(); +$r = new \HTTP_Request2( + 'http://localhost:9200/phorkie/file/_query', + \HTTP_Request2::METHOD_DELETE +); +$r->setBody( + json_encode( + (object)array( + 'match_all' => (object)array() + ) + ) +); +$r->send(); + +//create mapping +$r = new \HTTP_Request2( + 'http://localhost:9200/phorkie/file/_mapping', + \HTTP_Request2::METHOD_PUT +); +$r->setBody( + json_encode( + (object)array( + 'file' => (object)array( + '_parent' => (object)array( + 'type' => 'repo' + ) + ) + ) + ) +); +$r->send(); + + + +//FIXME: define schema +$rs = new Repositories(); +foreach ($rs->getList(0, 10000) as $repo) { + $r = new \HTTP_Request2( + //FIXME: make configurable + 'http://localhost:9200/phorkie/repo/' . $repo->id, + \HTTP_Request2::METHOD_PUT + ); + $r->setBody( + json_encode( + (object)array( + 'id' => $repo->id, + 'description' => $repo->getDescription(), + ) + ) + ); + $res = $r->send(); + + foreach ($repo->getFiles() as $file) { + $r = new \HTTP_Request2( + //FIXME: make configurable + 'http://localhost:9200/phorkie/file/?parent=' . $repo->id, + \HTTP_Request2::METHOD_POST + ); + $r->setBody( + json_encode( + (object)array( + 'name' => $file->getFilename(), + 'extension' => $file->getExt(), + 'content' => $file->isText() ? $file->getContent() : '', + ) + ) + ); + $r->send(); + } +} +?> diff --git a/scripts/search.php b/scripts/search.php new file mode 100644 index 0000000..b6273b4 --- /dev/null +++ b/scripts/search.php @@ -0,0 +1,61 @@ +<?php +//search + +namespace phorkie; +set_include_path( + __DIR__ . '/../src/' + . PATH_SEPARATOR . get_include_path() +); +spl_autoload_register( + function ($class) { + $file = str_replace(array('\\', '_'), '/', $class) . '.php'; + $hdl = @fopen($file, 'r', true); + if ($hdl !== false) { + fclose($hdl); + require $file; + } + } +); +require_once __DIR__ . '/../data/config.default.php'; +if (file_exists(__DIR__ . '/../data/config.php')) { + require_once __DIR__ . '/../data/config.php'; +} +if ($GLOBALS['phorkie']['cfg']['setupcheck']) { + SetupCheck::run(); +} + +//delete all repos +$r = new \HTTP_Request2( + 'http://localhost:9200/phorkie/repo/_search', + \HTTP_Request2::METHOD_GET +); +$r->setBody( + json_encode( + (object)array( + 'query' => (object)array( + 'bool' => (object)array( + 'should' => array( + (object)array( + 'query_string' => (object)array( + 'query' => 'test' + ), + ), + (object)array( + 'has_child' => (object)array( + 'type' => 'file', + 'query' => (object)array( + 'query_string' => (object)array( + 'query' => 'test' + ) + ) + ) + ) + ) + ), + ) + ) + ) +); +$res = $r->send(); +echo $res->getBody() . "\n"; +?> |
