Я новичок в Elasticsearch и PHP в целом. Я пытался выяснить проблему с кодом, который я получил. Я использую WAMP 3.1 с PHP 7.1 и Elasticsearch 6.2.
При переходе на локальный хост я получаю следующую ошибку:
Fatal error: Uncaught TypeError: Argument 1 passed to Elasticsearch\Client::__construct() must be an instance of Elasticsearch\Transport, array given, called in C:\wamp64\www\search\init.php on line 5 and defined in C:\wamp64\www\search\vendor\elasticsearch\elasticsearch\src\Elasticsearch\Client.php:98 Stack trace: #0 C:\wamp64\www\search\init.php(5): Elasticsearch\Client->__construct(Array) #1 C:\wamp64\www\search\index.php(2): require_once('C:\\wamp64\\www\\s...') #2 {main} thrown in C:\wamp64\www\search\vendor\elasticsearch\elasticsearch\src\Elasticsearch\Client.php on line 98
Я вижу, что, возможно, проблема с моим Init.php, но я использую тот, который получил без изменений, поэтому я точно не знаю, в этом ли проблема.
<code> <?php
require_once 'vendor/autoload.php';
$es = new Elasticsearch\Client([
'hosts' => ['127.0.0.1:9200']
]);
Here is also the index.php.
<?php
require_once 'init.php';
require 'vendor/autoload.php';
use Elasticsearch\ClientBuilder;
$client = Elasticsearch\ClientBuilder::create()->build();
if (isset($_GET['q'])) {
$q = $_GET['q'];
$query = $es->search([
'body' => [
'query' => [
'bool' => [
'should' => [
'match' => ['name' => $q],
'match' => ['content' => $q]
]
]
]
]
]);
}
echo '<pre>', print_r($query), '
';
if ($ query ['hit'] ['total']> = 1) {
$ results = $ query ['hit'] ['hit'];
}
?>
<! doctype html>
поиск | ES
<? PHP
if (isset ($ results)) {
foreach ($ приводит к $ r) {
?>
<? PHP
}
}
?>
Я был бы рад предоставить что-нибудь еще, если это необходимо для решения проблемы.