使用 FOSElasticaBundle 在 ElasticSearch 中建立索引不起作用。
这是来自我的配置(app/config/config.yml):
fos_elastica:
clients:
default: { host: localhost, port: 9200 }
serializer:
callback_class: FOS\ElasticaBundle\Serializer\Callback
serializer: serializer
indexes:
website:
client: default
types:
idea:
mappings:
title: { boost: 6 }
persistence:
driver: orm
model: Ideside\IdeaBundle\Entity\Idea
provider: ~
finder: ~
listener: ~
当我注释掉所有这些,使事物不在 ES 中被索引时,一切都会正常工作。但是当它出现在 config.yml 文件中时,并且我使用表单发布实体时,计算机爱好者会发疯两分钟,并且将返回以下响应:
“FatalErrorException:错误:超过 120 秒的最大执行时间”
当我更改 config.yml-settings 以便我发布的特定实体不在被索引到 ES 的实体中时,一切都会正常工作,但是在 ES 中仅索引一个数据库行就足以让服务器似乎停了下来。
如果数据库为空,php app/console fos:elastica:populate
-command 将完成,并且我还让它工作一两次,其中一个数据库行被索引到 ES,但是即使数据库中的数据量非常少,风扇也会疯狂地运行几分钟而没有过去Resetting website
(运行填充命令时终端打印的第一行)。
可能有助于理解问题所在的事情:
我之前已经在这个项目中成功地进行了 ES 集成。索引数据库,索引添加到数据库中的新事物,在 ES 中搜索——一切看起来都像是一种魅力。但是 ES 集成被保存在一个特定的 git-branch 上,该分支之前没有与主项目合并,现在它不再工作了。
在将 ES 集成分支与 master-branch 合并之前,master-branch 已经使用了 FOSRestBundle。
团队中拉出主分支的其他人也遇到了同样的问题,所以似乎问题出在项目代码上,而不是我的 ElasticSearch 节点(虽然我不能确定)。
你们中有人知道可能出了什么问题吗?任何帮助将不胜感激!
如果更多信息或更多代码部分可以帮助确定问题所在,我当然很乐意为您提供。