La indexación de FoselasticAbundle ralentiza la symfony hasta un alto
-
21-12-2019 - |
Pregunta
Las cosas de indexación en Elasticsearch usando FoselasticABUNDLE no funcionan.
Aquí está desde mi configuración (APP / CONFIG / CONFIG.ML):
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: ~
Cuando comento todo esto, lo que lo hace para que las cosas no sean indexadas en es, todo funcionará bien. Pero cuando está presente en el archivo CONFIG.YML, y publico una entidad usando un formulario, el ventilador de la computadora irá como una locura durante dos minutos y se devolverá la siguiente respuesta:
"FATALERRORException: ERROR: Tiempo máximo de ejecución de 120 segundos excedido"
Cuando cambio la configuración de Config.yml para que la entidad específica que estoy publicando no se encuentra entre los indexados a ES, todo funcionará bien, pero la indexación, solo una fila de base de datos en ES puede ser suficiente para Lleve al servidor a un detención que parece.
El comando php app/console fos:elastica:populate
terminará si la base de datos está vacía, y también lo hice funcionar una o dos veces con una fila de base de datos que se indexó a ES, pero con una cantidad de datos aún más modestos en la base de datos se ejecutará el ventilador. Loco por minutos sin pasar por Resetting website
(la primera línea, la terminal se imprime al ejecutar el comando POPULADO).
Cosas que pueden ayudar a comprender cuál es el problema:
-
He hecho que el ES-integración funcione con éxito en este proyecto antes. Indexando la base de datos, indexando las cosas nuevas que se agregan a la base de datos, buscando en ES, todo funcionó como un encanto que parecía. Pero la integración ES, se mantuvo en una rama de Git específica que no se ha fusionado con el proyecto principal antes de ahora, y ahora ya no funciona.
-
Antes de fusionar la rama integrada de ES-INTEGRADA con la sucursal maestra, la sucursal maestra, la sucursal maestra tiene, entre otras cosas, el uso de la FOSRESTBUNDLE.
-
Otras personas en el equipo que han tirado de la sucursal maestra han tenido el mismo problema, por lo que parece que el problema es con el código del proyecto, y no con mi elasticsearch-nodo (aunque no puedo ser seguro).
¿Alguno de ustedes tiene alguna idea de lo que podría estar equivocado? Cualquier ayuda sería
Si hay más información o más secciones de código pueden ser de ayuda para identificar lo que está mal,, por supuesto, le proporcionaré esto.
Solución
El problema fue causado por referencias circulares cuando los objetos sean serializados: http://en.wikipedia.org/wiki / circular_reference .
Si tiene un problema similar, puede resolverlo modificando qué propiedades sean serializadas mediante el uso de anotaciones: http://jmsyst.com/libs/serializer/master/reference/annotations .