Exemplo n.º 1
0
$idx = $_REQUEST['idx'];
$type = $_REQUEST['type'];
$query = str_replace('\\', '', $_REQUEST['query']);
$idx_type = $idx;
if ('' !== $type) {
    $idx_type .= '/' . $type;
}
//OPTIONAL: uncomment to enable whitelisting
//if ( ! in_array( $idx_type, array_keys( $whitelist_idx ) ) ) {
//	status_header( 403 ); //forbidden
//	die;
//}
try {
    $esclient = new Elastica_Client(array('servers' => $es_servers));
    $esQ = new Elastica_Query();
    $esQ->setRawQuery(get_object_vars(json_decode($query)));
    if (isset($whitelist_idx[$idx_type])) {
        $esQ->setHighlight(array('fields' => $whitelist_idx[$idx_type]['highlight'], 'pre_tags' => array('<b>'), 'post_tags' => array('</b>')));
        $esQ->setFields($whitelist_idx[$idx_type]['fields']);
    }
    if ('' != $type) {
        $estype = $esclient->getIndex($idx)->getType($type);
    } else {
        $estype = $esclient->getIndex($idx);
    }
    $results = $estype->search($esQ);
    echo json_encode($results->getResponse()->getData());
} catch (Exception $e) {
    error_log($e->getMessage());
    status_header(500);
    //server error
Exemplo n.º 2
0
	public function testSetRawQuery() {
		$query = new Elastica_Query();

		$params = array('query' => 'test');
		$query->setRawQuery($params);

		$this->assertEquals($params, $query->toArray());
	}