Я хочу использовать следующий запрос JSON в PHP:
{
"match_phrase" : {
"message" : {
"query" : "this is a test",
"analyzer" : "my_analyzer"}
}
}
Теперь у меня есть PHP-код:
$params['body']['query']['match_phrase'] = array(
"name" => $query
);
$this->result = $this->client->search($params);
Как я могу конвертировать JSON-запрос в запросе PHP-массива в соответствии с эластичной PHP-PHP?
Один из способов сделать это так:
$params['body']['query']['match_phrase'] = array(
"message" => array(
"query" => $query,
"analyzer" => "my_analyzer")
);
$this->result = $this->client->search($params);
Другой способ, который, вероятно, лучше при работе с Elasticsearch, это использовать json_decode
функция. Таким образом, вы можете легко написать свои запросы в JSON, используя
запрашивать DSL без проблем построения его с помощью ассоциативных массивов.
$json = '{
"match_phrase" : {
"message" : {
"query" : "' . $query . '",
"analyzer" : "my_analyzer"}
}
}';
$params['body']['query'] = json_decode($json);
$this->result = $this->client->search($params);
Других решений пока нет …