Elasticsearch. Извлекаем данные

Команда:

Получаем данные по определенному Id:

GET /megacorp/employee/1

Ищем все данные:

GET /megacorp/employee/_search

Поиск по параметрам:

GET /megacorp/employee/_search?q=last_name:Smith

CURL:

Получаем данные по определенному Id:

$curl -XGET 'http://localhost:9200/megacorp/employee/1'

Ищем все данные:

$curl -XGET 'http://localhost:9200/megacorp/employee/_search'

Поиск по параметрам:

$curl -XGET 'http://localhost:9200/megacorp/employee/_search?q=last_name:Smith'

PHP:

Получаем данные по определенному Id:

require 'vendor/autoload.php';
$client = Elasticsearch\ClientBuilder::create()->build();
$params = [
    'index' => 'megacorp',
    'type'  => 'employee',
     'id'    => '1'
];
$response = $client->get($params);
print_r($response);

Ищем все данные:

require 'vendor/autoload.php';
$client = Elasticsearch\ClientBuilder::create()->build();
$response = $client->search();        
print_r($response);

Поиск по параметрам:

require 'vendor/autoload.php';
$client = Elasticsearch\ClientBuilder::create()->build(); $params = [ 'index' => 'megacorp', 'type' => 'employee', 'body' => [ 'query' => [ 'match' => [ 'last_name' => 'Smith' ] ] ] ]; $response = $client->search($params);

Получаем массив, где:

took – время выполнения запроса.

timed_out – возвращает true если время выполнения запроса прошло.

_shards – по умолчанию, Elasticsearch размещает данные по 5 шардам (сегментам). Если значение 5 будет в total и successful то каждый шард работает корректно.

hits - результат поиска.

Yii2:

Получаем данные по определенному Id:

$model = Megacorp::get(1);
var_dump($model->last_name);

Ищем все данные:

$model = Megacorp::find()->all();    
var_dump($model);

Поиск по параметрам:

$params = [
    'match' => [
        'last_name' => 'Smith'
    ]
];
$model = Megacorp::find()->query($params)->all();

var_dump($model);

Дополнительно

Предыдущая часть: Elasticsearch. Добавление данных (индексация)