2013-03-15 3 views
6

Wir verwenden Grails 2.1.1 und durchsuchbares Plugin 0.6.4 in unseren Grails-Anwendungen und implementiert durchsuchbar auf einigen Domänen, die unten mit allen Zuordnungen angegeben sind.Grails überwintert/Durchsuchbare stoppt den Server mit der Ausnahme unter

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 
     ...... 
} 

Die Daten werden erfolgreich mit korrekter Zuordnung und Einschränkungen gespeichert.

Das Problem beginnt, wenn wir die drowslike unten in der Tabelle Benutzer mit Beziehung

Benutzer a1 haben -> UserEducations b1 -> Schulen d1

und

Benutzer a2 -> UserEducations b2 -> Schulen d1

oder

Benutzer a1 -> UserWorkings c1 -> Organisationen e1

und

Benutzer a2 -> UserWorkings c2 -> Organisationen e1

(Wir sind nicht sicher obige Tatsache kann das Problem aufgrund der großen nicht geschehen sein. Dann die Daten.)

wenn wir versuchen, den Server zu starten, dann wir unter Ausnahme und Server erhalten beginnen würde nicht

Wir haben versucht, durch durchsuchbaren Index zu entfernen und neu zu starten dann wieder auch nicht starten.

Der Server startet nur, wenn wir Tabellen, die über 5 Domänen entsprechen, abschneiden.

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) 

Unser Problem ist ähnlich wie unten Beitrag

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

Wir haben unser Bestes versucht, das Problem zu klären, aber kein Glück. Bitte helfen Sie uns, dieses Problem zu lösen.

+0

haben Sie die vorhandenen Indexdateien zu löschen versucht? – uchamp

+0

ja, aber überhaupt nicht funktioniert –

+0

@ Shashank.gupta40, ein Glück, ich bin auch mit diesem Problem konfrontiert. Kannst du mir bitte helfen. –

Antwort

0

an die Konsole gehen und geben Sie ein:

grails install-searchable-config 

Dann öffnen myproject/Grails-app/conf/Searchable.groovy und die Suche nach dem folgenden und die Werte ändern, wie ich darauf hingewiesen.

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

Aber es wird nicht die Datenbank indizieren, was zu tun ist, wenn wir die DB indizieren müssen? –

+0

sehe meine aktualisierte Antwort – confile

+1

Ich habe Ihre Schritte gefolgt, aber immer noch Fehler ist da. 13 Sep 2013 14: 36: 17: 225 FEHLER {Winterschlaf}: Fehler beim Indizieren der Datenbank org.compass.core.engine.SearchEngineException: Prozessor [2]: Fehler beim Hinzufügen des Jobs [Job erstellen [Alias ​​[Mitglied] uid [Member # 586 #]] Ressource [{Member} ..... nach [10000ms] und Backlog-Größe [100] Irgendeine Idee? –

Verwandte Themen