Как сделать префикс запроса в Elasticsearch php?

Я хочу использовать следующий запрос 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?

1

Решение

Один из способов сделать это так:

$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);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]