Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Erstellen Sie den Lucene-Index in der Datenbank mit JdbcDirectory

Ich habe meine eigene JdbcDirectory-Implementierung erstellt, obwohl sie sich auf JEE6 verlassen würde, um die Vorteile von @Singleton zu nutzen Anmerkung. Der Code selbst ist nicht zu trivial, um ihn in einen StackOverflow-Beitrag einzufügen, und er hat noch einige Einschränkungen. Der Schlüsselteil besteht darin, dass Sie aufgrund der Datenbanksperrsemantik nicht mehrere Operationen für eine einzelne Transaktion mit mehreren Threads ausführen können.

https://github.com/trajano/doxdb/tree/jdbc-directory-example/doxdb-ejb/src/main/java/net/trajano/doxdb/search/lucene

Wenn Sie sich Ihre Implementierung ansehen, scheint es, als würden Sie auch die gelöschten "Dateien" behalten, wahrscheinlich weil sie weniger Fragmentierung im Datenbankspeicher aufweisen würden, während bei mir der Datensatz selbst entfernt wurde.

Ich habe eine Version markiert, mit der ich arbeite und die für meine Testlasten stabil genug erscheint. Fühlen Sie sich frei, Kommentare oder Vorschläge dazu zu machen.