填充FOSElasticaBundle/Symfony2时响应执行错误

填充FOSElasticaBundle/Symfony2时响应执行错误,symfony,exception,elastica,foselasticabundle,Symfony,Exception,Elastica,Foselasticabundle,我想让福塞拉斯蒂卡本德尔去工作。 ElasticSearch实例正在localhost:9200上运行并正在响应 我遵循文档中的每个步骤 但在最后一步中,我在控制台中遇到以下错误: c:\xampp\htdocs\my\folder>php app/console fos:elastica:populate Resetting app Fatal error: Wrong parameters for Exception([string $exception [, long $code

我想让福塞拉斯蒂卡本德尔去工作。 ElasticSearch实例正在localhost:9200上运行并正在响应

我遵循文档中的每个步骤

但在最后一步中,我在控制台中遇到以下错误:

c:\xampp\htdocs\my\folder>php app/console fos:elastica:populate
Resetting app

Fatal error: Wrong parameters for Exception([string $exception [, long $code [,
Exception $previous = NULL]]]) in C:\xampp\htdocs\my\folder\vendor\rufli
n\elastica\lib\Elastica\Exception\ResponseException.php on line 34

[Symfony\Component\Debug\Exception\FatalErrorException]

Error: Wrong parameters for Exception([string $exception [, long $code [, Exception $previous = NULL]]])


fos:elastica:populate [--index[="..."]] [--type[="..."]] [--no-reset] [--offset="..."] [--sleep="..."] [--batch-size="..."] [--ignore-errors] [--no-overwrite-format]
似乎“_construct”函数必须有3个参数,但只有2个。我只是尝试添加“NULL”-参数来让它工作,但另一个函数抛出了一个错误

public function __construct(Request $request, Response $response)
{
    $this->_request = $request;
    $this->_response = $response;
    parent::__construct($response->getError());
}

这是一个普遍的问题吗?如何解决此问题?

此问题的原因是,使用elasticsearch 2.0时,响应错误的结构发生了更改(更多详细信息请参见此处)。而不是之前的字符串,它现在是嵌套数组。Elastica目前尚未与elasticsearch 2.0完全兼容。一旦推出与Elasticsearch 2.0兼容的Elastica新版本,可能意味着foselastica捆绑包也必须更新,因为这些更改将破坏向后兼容性。还要注意,这不是唯一破坏向后兼容性的更改


要了解升级进度,请关注以下问题:

这是因为ruflin/Elastica软件包尚不兼容elasticsearch 2.0

目前的另一种选择(直到ruflin/Elastica升级到2.0版本)是使用最新的1.x版本

你可以在这里下载:


ES 1.7.3+FosElasticaBundle(使用ruflin/Elastica)适用于Elasticsearch 1.7.3版本。

可能重复(您必须将您的PHP版本更新为5.3)我的PHP版本是5.6.3 OK,您是对的,这不是PHP版本的问题。看看代码,问题一定是$response->getError()没有返回字符串。我查看了代码,不明白为什么会发生这种情况。你找到什么了吗?这里也有同样的问题。我在将elasticsearch 1.7.3升级到2.0时遇到了这个问题,这不是foselastica的问题,而是foselastica使用的ruflin/Elastica的问题,我已经将问题转移到了那里:嗨,ruflin,在简单地“消除”这个错误消息之后,我的应用程序工作得很好。我看不出我的案子还有什么问题。顺致敬意,我还注释掉了错误构造,并能够继续使用此版本成功确认上面已解决的错误:(感谢Anil!)