Question

L'indexation des choses dans ElasticSearch à l'aide de FOSElasticaBundle ne fonctionne pas.

Ici est de ma config (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: ~ 

Lorsque j'ai fait un commentaire à l'écart de tout cela, faisant en sorte que les choses ne sont pas indexés dans les ES, tout fonctionnera correctement.Mais quand il est présent dans la config.yml-fichier, et je poste une entité à l'aide d'un formulaire, l'ordinateur ventilateur aller comme un fou pendant deux minutes et la réponse suivante est renvoyée:

"FatalErrorException:Erreur:Délai d'exécution maximal de 120 secondes dépassé"

So we are alone in the universe...

Lorsque je change la config.yml-paramètres de sorte que l'entité spécifique que je poste n'est pas parmi celles qui sont indexées à l'ES tout fonctionne correctement, mais l'indexation juste une base de données en ligne dans ES peut être suffisant pour amener le serveur à l'arrêt, il me semble.

L' php app/console fos:elastica:populate-commande terminer si la base de données est vide, et j'ai aussi fait travailler une fois ou deux fois, avec une base de données en ligne de l'indexation à l'ES, mais même avec de modestes quantités de données dans la base de données, le ventilateur fonctionnera comme un fou pendant quelques minutes sans le dépasser Resetting website (la première ligne, le terminal imprime lors de l'exécution de la remplir-commande).

Des choses qui peuvent aider dans la compréhension de ce qu'est le problème:

  • J'ai fait ES-intégration de travailler avec succès dans ce projet.L'indexation de la base de données, l'indexation de nouvelles choses étant ajouté à la base de données, la recherche de en ES - tout a fonctionné comme un charme semblait-il.Mais l'ES-intégration a été maintenu sur un git-branche qui n'a pas été fusionné avec le projet principal avant maintenant, et maintenant il ne fonctionne plus.

  • Avant la fusion de l'ES-intégré de la direction de la branche-maître le maître-branche, la branche-maître a entre autres fait usage de la FOSRestBundle.

  • D'autres personnes dans l'équipe qui ont tiré le maître-direction générale ont eu le même problème, il semble donc que le problème est avec le projet de code, et pas avec mon ElasticSearch-nœud (bien que je ne peux pas être sûr).

N'importe quel d'entre vous avez une idée de ce qui pourrait être mauvais?Toute aide serait profondément apprécié!

Si plus d'information ou plus de sections de code peut être de l'aide pour identifier ce qui est faux, je vais bien sûr un plaisir de vous fournir cette.

Était-ce utile?

La solution

Le problème a été causé par des références circulaires lorsque les objets où sérialisé: http://en.wikipedia.org/wiki/Circular_reference.

Si vous avez un problème similaire, vous pouvez le résoudre en modifiant les propriétés qui sont sérialisés par l'utilisation d'annotations: http://jmsyst.com/libs/serializer/master/reference/annotations.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top