<?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;
}