填充时 ResponseExeption 出错 FOSElasticaBundle/Symfony2
Error in ResponseExeption while populating FOSElasticaBundle/Symfony2
我正在尝试让 FOSElasticaBundle 工作。
ElasticSearch 实例在 localhost:9200 上 运行 并且正在响应。
我遵循了文档中的每个步骤https://github.com/FriendsOfSymfony/FOSElasticaBundle/blob/master/Resources/doc/setup.md
但在最后一步,我在控制台中收到此错误:
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"-parameter 使其工作,但随后另一个函数抛出错误。
public function __construct(Request $request, Response $response)
{
$this->_request = $request;
$this->_response = $response;
parent::__construct($response->getError());
}
这是一个常见问题吗?我该如何解决?
这个问题的原因是,elasticsearch 2.0 响应错误的结构发生了变化(更多细节在这里:https://github.com/ruflin/Elastica/issues/946)。而不是之前的字符串,现在是嵌套数组。 Elastica 目前还不能完全兼容 elasticsearch 2.0。一旦与 Elasticsearch 2.0 兼容的新版本 Elastica 发布,这可能意味着 foselastica bundle 也必须更新,因为这些更改将破坏向后兼容性。另请注意,这不是唯一的向后兼容性中断更改。
要了解升级进度,请关注此问题:https://github.com/ruflin/Elastica/issues/946
这是因为 ruflin/Elastica 包还不兼容 elasticsearch 2.0。
https://github.com/ruflin/Elastica/issues/946
目前的替代方法(在 ruflin/Elastica 升级到 2.0 之前)是使用最新的 1.x 版本。
您可以在这里下载:https://www.elastic.co/downloads/past-releases/elasticsearch-1-7-3
ES 1.7.3 + FosElasticaBundle(使用 ruflin/Elastica)与 Elasticsearch 1.7.3 版本配合良好。
我正在尝试让 FOSElasticaBundle 工作。 ElasticSearch 实例在 localhost:9200 上 运行 并且正在响应。
我遵循了文档中的每个步骤https://github.com/FriendsOfSymfony/FOSElasticaBundle/blob/master/Resources/doc/setup.md
但在最后一步,我在控制台中收到此错误:
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"-parameter 使其工作,但随后另一个函数抛出错误。
public function __construct(Request $request, Response $response)
{
$this->_request = $request;
$this->_response = $response;
parent::__construct($response->getError());
}
这是一个常见问题吗?我该如何解决?
这个问题的原因是,elasticsearch 2.0 响应错误的结构发生了变化(更多细节在这里:https://github.com/ruflin/Elastica/issues/946)。而不是之前的字符串,现在是嵌套数组。 Elastica 目前还不能完全兼容 elasticsearch 2.0。一旦与 Elasticsearch 2.0 兼容的新版本 Elastica 发布,这可能意味着 foselastica bundle 也必须更新,因为这些更改将破坏向后兼容性。另请注意,这不是唯一的向后兼容性中断更改。
要了解升级进度,请关注此问题:https://github.com/ruflin/Elastica/issues/946
这是因为 ruflin/Elastica 包还不兼容 elasticsearch 2.0。
https://github.com/ruflin/Elastica/issues/946
目前的替代方法(在 ruflin/Elastica 升级到 2.0 之前)是使用最新的 1.x 版本。
您可以在这里下载:https://www.elastic.co/downloads/past-releases/elasticsearch-1-7-3
ES 1.7.3 + FosElasticaBundle(使用 ruflin/Elastica)与 Elasticsearch 1.7.3 版本配合良好。