<?php // includes require_once 'config.php'; require_once '../cps_api.php'; try { // creating a CPS_Connection instance $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account'])); $insertDocs = array(); $insertDocs['id1'] = array('category' => 'cars', 'name' => 'Janis', 'car_params' => array('year' => '2011', 'make' => 'Audi', 'model' => 'A6'), 'persons' => array('person' => array('name' => 'Janis', 'surname' => 'Karklins'))); $insertDocs['id2'] = array('category' => 'cars', 'name' => 'Karlis', 'car_params' => array('year' => '2009', 'make' => 'Audi', 'model' => 'A6'), 'persons' => array('person' => array('name' => 'Janis', 'surname' => 'Karklins'))); $insertDocs['id3'] = array('category' => 'mopeds', 'name' => 'Aigars', 'car_params' => array('year' => '2012', 'make' => 'Audi', 'model' => 'A4'), 'persons' => array('person' => array('name' => 'Janis', 'surname' => 'Karklins'))); $insertDocs['id4'] = array('category' => 'cars', 'name' => 'Janis', 'car_params' => array('year' => '2010', 'make' => 'Audi', 'model' => 'A5'), 'persons' => array('person' => array('name' => 'Janis', 'surname' => 'Karklins'))); $insertDocs['id5'] = array('category' => 'mopeds', 'name' => 'Janis', 'car_params' => array('year' => '2011', 'make' => 'Audi', 'model' => 'A6'), 'persons' => array('person' => array('name' => 'Janis', 'surname' => 'Karklins'))); $insertDocs['id6'] = array('category' => 'mopeds', 'name' => 'Janis', 'persons' => array('year' => '2011', 'make' => 'Audi', 'model' => 'A6'), 'persons' => array('person' => array('name' => 'Janis', 'surname' => 'Karklins'))); // Insert $insertRequest = new CPS_InsertRequest($insertDocs); $cpsConnection->sendRequest($insertRequest); } catch (CPS_Exception $e) { var_dump($e->errors()); exit; }
<?php // includes require_once 'config.php'; require_once '../cps_api.php'; try { // creating a CPS_Connection instance $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account'])); // $cpsConnection->setDebug(1); //=========== adding a new subdocument $subdocument = array('person' => array('name' => 'Josh', 'surname' => 'Smith')); $ids = array('id1', 'id2'); // Perform additions $prxRequest = new CPS_PartialXRequest($ids, new CPS_PRX_Operation('/document/persons', 'append_children', $subdocument)); $response = $cpsConnection->sendRequest($prxRequest); //=========== sending multiple changesets at once $subdocument = array('person' => array('name' => 'George', 'surname' => 'Smith')); $changeset1 = new CPS_PRX_Changeset('id1', new CPS_PRX_Operation('/document/persons', 'append_children', $subdocument)); $subdocument2 = array('birth_year' => '1960'); $changeset2 = new CPS_PRX_Changeset('id2', new CPS_PRX_Operation('/document/persons/person[name="Josh"]', 'merge_children', $subdocument2)); // Perform changes $prxRequest = new CPS_PartialXRequest(array($changeset1, $changeset2)); $response = $cpsConnection->sendRequest($prxRequest); } catch (CPS_Exception $e) { var_dump($e->errors()); exit; } ?>
$cpsSimple = new CPS_Simple($cpsConnection); /* $ids = array(); for ($x = 0; $x < TOTAL_DOCS; ++$x) { $ids[] = 'perf_id' . ($x + ID_OFFSET); } $startTime = microtime(true); $cpsSimple->retrieveMultiple($ids); echo 'Total : ' . sprintf('%01.6f', microtime(true) - $startTime) . ' seconds.<br />'; exit;*/ if (DO_MYSQL) { $mysqlConnection = mysql_connect('127.0.0.1', 'root', 'password'); mysql_select_db('cps2_perf_test'); } if (DO_CPS) { $cpsConnection->sendRequest(new CPS_Request('clear')); sleep(1); } // $cpsConnection->waitForResponse(false); if (DO_MONGO) { $m = new Mongo(); $db = $m->test; $collection = $db->insert_test; MongoCursor::$timeout = 120000; // 2 minutes } if (defined('RANDOM_SEED')) { srand(RANDOM_SEED); echo 'Seeded with random seed ' . RANDOM_SEED . ', first random value: ' . rand() . '<br />'; } $randomWords = array();
$query = CPS_Term('cars', 'category') . CPS_Term('>=2010', 'car_params/year'); // return documents starting with the first one - offset 0 $offset = 0; // return not more than 5 documents $docs = 5; // return these fields from the documents $list = array('id' => 'yes', 'car_params/make' => 'yes', 'car_params/model' => 'yes', 'car_params/year' => 'yes'); $listXml = '<id>yes</id> <car_params><make>yes</make></car_params> <car_params><model listas="modelis">yes</model></car_params> <car_params><year>yes</year></car_params>'; // order by year, from largest to smallest $ordering = CPS_NumericOrdering('car_params/year', 'descending'); // Searching for documents // note that only the query parameter is mandatory - the rest are optional $searchRequest = new CPS_SearchRequest($query, $offset, $docs); $searchRequest->setParam('list', $listXml); $searchRequest->setOrdering($ordering); $searchResponse = $cpsConnection->sendRequest($searchRequest); if ($searchResponse->getHits() > 0) { // getHits returns the total number of documents in the storage that match the query echo 'Found ' . $searchResponse->getHits() . ' documents<br />'; echo 'showing from ' . $searchResponse->getFrom() . ' to ' . $searchResponse->getTo() . '<br />'; foreach ($searchResponse->getDocuments() as $id => $document) { echo $document->car_params->make . ' ' . $document->car_params->model . '<br />'; echo 'first registration in ' . $document->car_params->year . '<br />'; } } else { echo 'Nothing found.'; } } catch (CPS_Exception $e) { var_dump($e->errors()); exit; }
<?php // includes require_once 'config.php'; require_once '../cps_api.php'; try { // creating a CPS_Connection instance $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account'])); // looking up 10 last documents - list only the name $listLastRequest = new CPS_ListLastRequest(array('document' => 'no', 'name' => 'yes'), 0, 10); $listLastResponse = $cpsConnection->sendRequest($listLastRequest); foreach ($listLastResponse->getDocuments() as $id => $document) { echo $document->name . '<br />'; } } catch (CPS_Exception $e) { var_dump($e->errors()); exit; }
// lets replace - with ="" which tells Clusterpoint to look for documents for which this tag does not exist $amenities[array_search('-', $amenities)] = '=""'; } // add amenities filter to search request $query .= CPS_Term('{ ' . implode(' ', $amenities) . ' }', 'tags/amenity'); } $search_request = new CPS_SearchRequest($query, $offset, $docs); $search_request->setParam('list', '<document>yes</document>'); // search should return full documents $search_request->setShape($circle); // attach previously defined circle definition if ($query_without_amenities == $query) { // if there was no amenities filter, we can aggregate data together with search request $search_request->setAggregate($aggregate); } $search_response = $cps_connection->sendRequest($search_request); if ($search_response->getHits() > 0) { $objects['total'] = $search_response->getHits(); $objects['from'] = $search_response->getFrom() + 1; // getFrom() returns offset. We want to show offset +1 $objects['to'] = $search_response->getTo(); $objects['pages'] = ceil($objects['total'] / $docs); $objects['current_page'] = $search_response->getFrom() / $docs + 1; foreach ($search_response->getDocuments(DOC_TYPE_ARRAY) as $id => $document) { ksort($document['tags']); // sort tags to make it more easy to read in map's info windows $objects['list'][] = ['id' => $document['id'], 'tags' => $document['tags'], 'lat' => $document['lat'], 'lng' => $document['lon']]; } } if ($query_without_amenities == $query) { // if we aggregated data when we sent search request, lets get aggregation result
<?php // includes require_once 'config.php'; require_once '../cps_api.php'; try { // creating a CPS_Connection instance $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account'])); // Reindexing storage $reindexRequest = new CPS_Request('reindex'); $resp = $cpsConnection->sendRequest($reindexRequest); } catch (CPS_Exception $e) { var_dump($e->errors()); exit; } ?>
<?php // includes require_once 'config.php'; require_once '../cps_api.php'; try { // creating a CPS_Connection instance $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account'])); // Retrieving status information $statusRequest = new CPS_StatusRequest(); $statusResponse = $cpsConnection->sendRequest($statusRequest); $status = $statusResponse->getStatus(); foreach ($status['shard'] as $shard) { foreach ($shard['replica'] as $replica) { echo 'Status ' . $replica['status']['index']['status'] . ' <br>'; } } } catch (CPS_Exception $e) { var_dump($e->errors()); exit; } ?>
<?php // includes require_once 'config.php'; require_once '../cps_api.php'; try { // creating a CPS_Connection instance $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account'])); // Looking up one document - listing name only $lookupRequest = new CPS_LookupRequest('id1', array('document' => 'no', 'name' => 'yes')); $lookupResponse = $cpsConnection->sendRequest($lookupRequest); foreach ($lookupResponse->getDocuments() as $id => $document) { echo $document->name . '<br />'; } // Looking up multiple documents - listing name only $lookupRequest = new CPS_LookupRequest(array('id2', 'id3'), array('document' => 'no', 'name' => 'yes')); $lookupResponse = $cpsConnection->sendRequest($lookupRequest); foreach ($lookupResponse->getDocuments() as $id => $document) { echo $document->name . '<br />'; } } catch (CPS_Exception $e) { var_dump($e->errors()); exit; }
<?php // includes require_once 'config.php'; require_once '../cps_api.php'; try { // creating a CPS_Connection instance $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account'])); // Clearing storage $clearRequest = new CPS_Request('clear'); $cpsConnection->sendRequest($clearRequest); } catch (CPS_Exception $e) { var_dump($e->errors()); sleep(10); exit; } sleep(10);
<?php // includes require_once 'config.php'; require_once '../cps_api.php'; try { // creating a CPS_Connection instance $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account'])); // Retrieving one document $retrieveRequest = new CPS_RetrieveRequest('id1'); $retrieveResponse = $cpsConnection->sendRequest($retrieveRequest); foreach ($retrieveResponse->getDocuments() as $id => $document) { echo $document->category . '<br />'; } // Retrieving multiple documents $retrieveRequest = new CPS_RetrieveRequest(array('id2', 'id3')); $retrieveResponse = $cpsConnection->sendRequest($retrieveRequest); foreach ($retrieveResponse->getDocuments() as $id => $document) { echo $document->category . '<br />'; } } catch (CPS_Exception $e) { var_dump($e->errors()); exit; }
<?php // includes require_once 'config.php'; require_once '../cps_api.php'; try { // creating a CPS_Connection instance $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account'])); // $cpsConnection->setDebug(1); // creating a new document $document = array('title' => 'Test document', 'body' => array('text' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a nisl magna.')); $document2 = array('title' => 'Document 2', 'body' => array('text' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a nisl magna.')); $document3 = array('title' => 'Document 3', 'body' => array('text' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam a nisl magna.')); // Insert $insertRequest = new CPS_InsertRequest('id1', $document); $cpsConnection->sendRequest($insertRequest); $insertRequest = new CPS_InsertRequest(array('id2' => $document2, 'id3' => $document3)); $cpsConnection->sendRequest($insertRequest); // Update $document['title'] = 'changed title'; $updateRequest = new CPS_UpdateRequest('id1', $document); $cpsConnection->sendRequest($updateRequest); $updateRequest = new CPS_UpdateRequest(array('id1' => $document, 'id3' => $document3)); $cpsConnection->sendRequest($updateRequest); // Replace $document['title'] = 'changed title for replace'; $replaceRequest = new CPS_ReplaceRequest('id1', $document); $cpsConnection->sendRequest($replaceRequest); $replaceRequest = new CPS_ReplaceRequest(array('id1' => $document, 'id3' => $document3)); $cpsConnection->sendRequest($replaceRequest); // Partial Replace
<?php // includes require_once 'config.php'; require_once '../cps_api.php'; try { // creating a CPS_Connection instance $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account'])); // Deleting one $deleteRequest = new CPS_DeleteRequest('id1'); $cpsConnection->sendRequest($deleteRequest); // Deleting multiple $deleteRequest = new CPS_DeleteRequest(array('id2', 'id3')); $cpsConnection->sendRequest($deleteRequest); } catch (CPS_Exception $e) { var_dump($e->errors()); exit; }
<?php // includes require_once 'config.php'; require_once '../cps_api.php'; try { // creating a CPS_Connection instance $cpsConnection = new CPS_Connection($config['connection'], $config['database'], $config['username'], $config['password'], 'document', '//document/id', array('account' => $config['account'])); // Retrieving paths $listPathsRequest = new CPS_ListPathsRequest(); $listPathsResponse = $cpsConnection->sendRequest($listPathsRequest); $paths = $listPathsResponse->getPaths(); foreach ($paths as $path) { echo $path . '<br>'; } } catch (CPS_Exception $e) { var_dump($e->errors()); exit; }