php - 用Symfony 2用Elasticsearch填充索引

标签 php symfony elasticsearch doctrine-orm

我是Elasticsearch的新手,我已经使用FOSElasticaBundle安装并配置了带有Elasticsearch的symfony2。

问题是,当我尝试使用以下命令填充索引时:

php app/console fos:elastica:populate  --verbose --no-reset 

当我完成进度达到70%

11200/11200 [============================] 100%5秒

315000/415391 [====================> ------] 75%1小时

我收到了内存不足异​​常:
  [Symfony\Component\Debug\Exception\OutOfMemoryException]                      
  Error: Out of memory (allocated -1371537408) (tried to allocate 54801 bytes) 

我还尝试了--sleep和--offset选项来克服该问题,但没有成功。
另外,我已经从配置文件中删除了完全序列化程序。

任何的想法 ?
谢谢

最佳答案

添加--no-debug可以在一定程度上减少内存使用量

app/console fos:elastica:populate --no-debug

或者减少由检索的对象数量
  persistence:
    driver: orm
    model: Application\Bundle\Entity\Article
    provider:
      batch_size: 100

有关更多信息,请参见以下问题:
https://github.com/FriendsOfSymfony/FOSElasticaBundle/issues/153

关于php - 用Symfony 2用Elasticsearch填充索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35438385/

相关文章:

php - 使用 YAML 的 Symfony2 Doctrine 索引

php - 从 Doctrine2 获取值数组的正确方法

elasticsearch - 如何最好地解决NEST中的索引属性子字段?

php - Connection.php 行 647 : SQLSTATE[42000]: Syntax error or access violation 中的 Laravel QueryException

php - MySQL 2 个表中的多个 WHERE 条件

php - Symfony2 session 和缓存 :clear command

java - 如何在 spring-boot 中指定较新版本的 Elasticsearch

elasticsearch - ElasticSearch:在文档中查找相互匹配

php - Yii - 使字符串可用于 URL 或文件名

PHP 在建立数据库连接时包含错误