Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Elasticsearch-不同客户端的不同结果_Php_Curl_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Php,Curl,elasticsearch" /> elasticsearch,Php,Curl,elasticsearch" />

Php Elasticsearch-不同客户端的不同结果

Php Elasticsearch-不同客户端的不同结果,php,curl,elasticsearch,Php,Curl,elasticsearch,我正在尝试将Elasticsearch与PHP客户端一起使用。然而,当我构造一个简单的查询时,它对同一索引给出的结果与我认为的通过Curl或Python的等价查询截然不同。也就是说,结果与查询完全无关——看起来像是一个随机的数据块。无论我发送的参数(姓氏)的值是多少,它都会返回相同的结果。以下是PHP代码: <?php require 'vendor/autoload.php'; use Elasticsearch\ClientBuilder; $client = ClientBuil

我正在尝试将Elasticsearch与PHP客户端一起使用。然而,当我构造一个简单的查询时,它对同一索引给出的结果与我认为的通过Curl或Python的等价查询截然不同。也就是说,结果与查询完全无关——看起来像是一个随机的数据块。无论我发送的参数(姓氏)的值是多少,它都会返回相同的结果。以下是PHP代码:

<?php
require 'vendor/autoload.php';

use Elasticsearch\ClientBuilder;

$client = ClientBuilder::create()->build();

$params = [
    'index' => 'directory',
    'body' => [
        'query' => [
            'match' => [
                'last_name' => 'ely'
                ]
        ]
    ]
];
$response = @$client->search($params);
print_r($response);
?>

提前感谢您的建议

您收到的错误来自
SmartSerializer.php

$data = json_encode($data, JSON_PRESERVE_ZERO_FRACTION);
您可以看到,第二个参数
JSON\u PRESERVE\u ZERO\u FRACTION
已经添加进来,它也


因此,问题在于您使用的是最新版本的elasticsearch php,它需要php 5.6.6,但您的php版本低于此版本,因此,
JSON\u PRESERVE\u ZERO\u分数
在您的php版本中不存在。

您能删除$client->search前面的@吗?你可能有一些错误被掩盖了。对不起,我漏掉了错误部分。client->search调用确实给出了这个错误:
警告:json_encode()希望参数2很长,字符串在第30行的/Library/WebServer/Documents/es/vendor/elasticsearch/elasticsearch/src/elasticsearch/Serializers/SmartSerializer.php中给出,非常感谢-我升级到了7.1,问题确实解决了!很酷,很高兴它有帮助!我很乐意,但我看不到这个选择。。。我会随便看看。
$data = json_encode($data, JSON_PRESERVE_ZERO_FRACTION);