私はElasticsearchをPHPクライアントで使用しようとしています。しかし、単純なクエリを作成すると、CurlやPythonによる同等のクエリと同じインデックスに対して、大幅に異なる結果が得られます。つまり、結果は完全にクエリとは無関係です。ランダムなデータのように見えます。また、送信するパラメータ(姓)の値に関係なく、同じ結果が返されます。ここではPHPのコードは次のとおりです。任意の提案を事前に弾性検索 - 異なるクライアントで異なる結果
http://localhost:9200/directory/_search?q=last_name:ely
ありがとう:
<?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);
?>
そして、ここでは正確な結果を返すカールと同等で、です!
$ client-> searchの前に@を削除できますか?おそらく、マスクされているいくつかのエラーがあります。 – nikoshr
私の謝罪、私はエラーの部分を残しました。 'Warning:json_encode()は、パラメータ2がlongであることを期待しています。/ Library/WebServer/Documents/es/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Serializers/SmartSerializerで指定した文字列です。 php on line 30' – Tiggyboo