2013-03-15 6 views
6

Stiamo usando Grails 2.1.1 e il plug-in ricercabile 0.6.4 nelle nostre applicazioni Grails e implementato ricercabile su alcuni domini che sono indicati sotto con tutti i mapping.Grails hibernate/Ricerca interrompe il server per iniziare dando l'eccezione sotto

class User { 
     ..... 
     static hasMany = [userEducations : UserEducations , userWorkings : UserWorkings ] 
     ...... 
     static searchable = { 
     content: spellCheck 'include' 
     all termVector: "yes" 
     userEducations component: true 
     userWorkings component: true 
     } 
     ...... 
} 

class UserEducations { 
    ..... 
    Schools schools 
    ..... 
    static belongsTo = [user : User ] 
    ...... 
    static searchable = { 
     content: spellCheck 'include' 
     all termVector: "yes" 
     schools component: true 
    } 
     ...... 
} 

class UserWorkings { 
     ..... 
     Organizations organizations 
     ..... 
    static belongsTo = [user : User ] 
    .... 
    static searchable = { 
     content: spellCheck 'include' 
     all termVector: "yes" 
     organizations component: true 
    } 
    ...... 
} 

class Schools { 
     ...... 
     static searchable = true 
     ...... 
} 

class Organizations { 
     ...... 
     static searchable = true 
     ...... 
} 

I dati vengono salvati correttamente con mappatura e vincoli corretti.

Il problema inizia quando abbiamo la drowslike sotto nella utente tabella con rapporto

A1 utente -> UserEducations b1 -> Scuole d1

e

A2 utente -> UserEducations b2 -> Scuole d1

o

utente A1 -> UserWorkings c1 -> Organizzazioni e1

012.351.641,061 mila

e

A2 Utente -> UserWorkings c2 -> Organizzazioni e1

(Non siamo sicuri di sopra infatti può essere il problema è accaduto a causa di grandi no. dei dati.)

Poi, quando si cerca di avviare il server allora riceviamo sotto eccezione e server non avrebbe cominciato

Abbiamo cercato rimuovendo indice reperibile e riavviare di nuovo allora, inoltre, non si avvia.

Il server si avvia solo quando vengono troncate le tabelle corrispondenti a 5 domini superiori.

18:30:54,133 [Compass Gps Index [pool-5-thread-5]] ERROR indexer.ScrollableHibernateIndexEntitiesIndexer - {hibernate}: Failed to index the database 
org.compass.core.engine.SearchEngineException: Processor [4]: Failed to add job [Job Create [alias [Organizations] uid [Organizations#456#]] Resource [{Organizations} [stored/uncompressed,indexed,omitNorms<alias:Organizations>],[stored/uncompressed,indexed,omitNorms,omitTf<$/Organizations/id:456>],[stored/uncompressed,indexed<active:true>],[stored/uncompressed,indexed<dateCreated:2013-02-28-14-03-05-0-PM>],[stored/uncompressed,indexed,tokenized<aaa:109122482450911>],[stored/uncompressed,indexed<lastUpdated:2013-02-28-14-03-05-0-PM>],[stored/uncompressed,indexed,tokenized<name:Asc>],[stored/uncompressed,indexed<version:0>],[stored/uncompressed,indexed,omitNorms,omitTf<$/uid:Bs#456#>]]] after [10000ms] and backlog size [100] 
     at org.compass.core.lucene.engine.transaction.support.AbstractConcurrentTransactionProcessor$Processor.addJob(AbstractConcurrentTransactionProcessor.java:496) 
     at org.compass.core.lucene.engine.transaction.support.AbstractConcurrentTransactionProcessor.create(AbstractConcurrentTransactionProcessor.java:158) 
     at org.compass.core.lucene.engine.LuceneSearchEngine.createOrUpdate(LuceneSearchEngine.java:290) 
     at org.compass.core.lucene.engine.LuceneSearchEngine.create(LuceneSearchEngine.java:268) 
     at org.compass.core.impl.DefaultCompassSession.create(DefaultCompassSession.java:413) 
     at org.compass.core.impl.DefaultCompassSession.create(DefaultCompassSession.java:397) 
     at org.compass.core.impl.ExistingCompassSession.create(ExistingCompassSession.java:305) 
     at org.compass.gps.device.hibernate.indexer.ScrollableHibernateIndexEntitiesIndexer$RowBuffer.flush(ScrollableHibernateIndexEntitiesIndexer.java:212) 
     at org.compass.gps.device.hibernate.indexer.ScrollableHibernateIndexEntitiesIndexer$RowBuffer.close(ScrollableHibernateIndexEntitiesIndexer.java:206) 
     at org.compass.gps.device.hibernate.indexer.ScrollableHibernateIndexEntitiesIndexer.performIndex(ScrollableHibernateIndexEntitiesIndexer.java:151) 
     at org.compass.gps.device.support.parallel.ConcurrentParallelIndexExecutor$1$1.doInCompassWithoutResult(ConcurrentParallelIndexExecutor.java:104) 
     at org.compass.core.CompassCallbackWithoutResult.doInCompass(CompassCallbackWithoutResult.java:29) 
     at org.compass.core.CompassTemplate.execute(CompassTemplate.java:133) 
     at org.compass.gps.impl.SingleCompassGps.executeForIndex(SingleCompassGps.java:147) 
     at org.compass.gps.device.support.parallel.ConcurrentParallelIndexExecutor$1.call(ConcurrentParallelIndexExecutor.java:102) 
     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
     at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
     at java.lang.Thread.run(Thread.java:679) 

Il nostro problema è simile a quello di sotto postale

http://grails.1312388.n4.nabble.com/hibernate-Searchable-failing-to-index-on-program-start-td4119566.html

Abbiamo fatto del nostro meglio per risolvere il problema, ma senza fortuna. Per favore aiutaci a risolvere questo problema.

+0

avete provato l'eliminazione dei file di indice esistenti? – uchamp

+0

sì ma non ha funzionato affatto –

+0

@ Shashank.gupta40, per fortuna, sto affrontando anche questo problema. Potete per favore aiutarmi. –

risposta

0

Vai alla console e digitare:

grails install-searchable-config 

Quindi aprire myproject/graal-app/conf/Searchable.groovy e la ricerca di quanto segue e modificare i valori come ho sottolineato.

mirrorChanges = false 
bulkIndexOnStartup = false 

in Bootstrap.groovy:

class BootStrap { 
    def searchableService 

    def init = { servletContext -> 
     // do any data loading you would normally do 

     // Manually start the mirroring process to ensure that it comes after the automated migrations. 
     println "Performing bulk index" 
     searchableService.reindex() 
     println "Starting mirror service" 
     searchableService.startMirroring() 
    } 
} 
+0

Ma non indicizzerà il database, cosa fare se dobbiamo indicizzare il DB? –

+0

vedi la mia risposta aggiornata – confile

+1

Ho seguito i tuoi passi ma ancora errore c'è. 13 set 2013 14: 36: 17: 225 ERRORE {ibernazione}: impossibile indicizzare il database org.compass.core.engine.SearchEngineException: Processore [2]: Impossibile aggiungere lavoro [Creazione lavoro [alias [membro] uid [Membro # 586 #]] Risorsa [{Membro} ..... dopo [10000 ms] e dimensione del lavoro arretrato [100] Qualche idea? –