Domanda

Indicizzazione delle cose in ELASTICESICSEARCH utilizzando FOSELASTICHEBUNTINGLE non funziona.

qui è dalla mia configurazione (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: ~ 
.

Quando commendo tutto questo, rendendolo in modo che le cose non siano indicizzate in ES, tutto funzionerà bene. Ma quando questo è presente nel file CONFIG.YML, e pubblicando un'entità utilizzando un modulo, la ventola del computer andrà come un pazzo per due minuti e verrà restituita la seguente risposta:

"FataleRexception: Errore: tempo di esecuzione massimo di 120 secondi superato"

Quindi siamo soli nell'universo ...

Quando modifico le impostazioni Config.yml in modo che l'entità specifica che sto postazione non sia tra quelle indicizzate a ES tutto funzioni bene, ma indicizzano solo una fila di database in ES può essere sufficiente Porta il server a fermarsi.

Il comando php app/console fos:elastica:populate terminerà se il database è vuoto e l'ho anche fatto funzionare una o due volte con una riga di database indicizzata su ES, ma con quantità comunque modeste di dati nel database la ventola verrà eseguita come Pazzo per minuti senza andare oltre Resetting website (la prima riga Il terminale stampa quando si esegue il comando della popolazione).

Cose che possono aiutare a capire cosa è il problema:

    .
  • Ho effettuato il lavoro ES-Integration con successo in questo progetto prima. Indicizzazione del database, indicizzando nuove cose aggiunte al database, cercando in ES - tutto funzionava come un fascino che sembrava. Ma l'es-integrazione è stata tenuta su uno specifico ramo Git che non è stato fuso con il progetto principale prima ora, e ora non funziona più.

  • Prima di fondere il ramo integrato ES con il master-branch il master-branch, il master-branch ha tra le altre cose fatto uso del fosrestbundle.

  • Altre persone sulla squadra che hanno tirato il Master-Branch hanno avuto lo stesso problema, quindi sembra che il problema sia con il codice del progetto, e non con il mio nodo Elasticsearch (anche se non posso essere sicuro).

Qualcuno di voi ha qualche idea di cosa potrebbe essere sbagliato? Qualsiasi aiuto sarebbe profondamente apprezzato!

Se maggiori informazioni o più sezioni di codice possono essere di aiuto per identificare ciò che è sbagliato, ovviamente ti forniremo volentieri.

È stato utile?

Soluzione

Il problema è stato causato da riferimenti circolari quando gli oggetti in cui serializzato: http://en.wikipedia.org/wiki / circolari_reference .

Se si dispone di un problema simile è possibile risolverlo modificando quali proprietà serializzate utilizzando annotazioni: http://jmsyst.com/libs/serializer/master/reference/annotazioni .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top