1

我正在尝试在我的计算机上运行一个使用 elasticsearch 的项目。但在这一点上,API。从 elasticsearch 查询某些内容我收到以下错误并且查询不执行:

Elasticsearch\Common\Exceptions\RuntimeException: Failed to JSON encode: 5 in file /Users/sobhan.bagheri/projects/laravel/regionsdelen-api/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Serializers/SmartSerializer.php on line 33

我正在使用:laravel frameworkwith valet- php7.1- elasticsearch 6.1.2- 和elasticsearch/elasticsearch:v6.0.1驱动程序。

我尝试了所有方法,例如将 elasticsearch 更改为新版本或旧版本。更改客户端连接到 elasticsearch 的方式并更改了elasticsearch/elasticsearch驱动程序的版本,但似乎没有任何效果。

顺便说一句:我提到的那些版本是在另一台机器上运行而没有此错误的版本。

PS:此错误仅在我查询瑞典字符时发生。

4

2 回答 2

4

我也面临同样的问题。对我来说,问题是字符串包含特殊字符,这在编码为 JSON 时会产生问题,所以试试这个。

$array= array_map('utf8_encode', $array);

希望这对您有用。

于 2019-08-01T11:45:41.700 回答
1

我遇到了同样的问题,我的问题是由于substr()在插入 elasticSearch 索引之前对字符串使用了函数,然后我用mb_substr(string, start, length,'utf8')函数替换了它,问题就解决了。

于 2019-12-02T15:05:21.887 回答