Hi,
I have done research and came to conclusion that implementing a plugin for
Compass framework would be much more elegant approach than building a facade
to the existing DB's.
I'll name main reasons why I draw such conclusion:
Facade approach:
1) Because not all DB's have full text search capabilities implementing as a
facade to existing capabilities would make Cayenne framework inconsistent
with some DB's. I suppose that one great quality of present framework is
compatibility with supported databases.
2) Not elegant approach.
3) Taking care about all differences between DB's may be time consuming.
Also future changes in different DB's may lead to error-prone code..
Compass plugin approach:
1) Compass allows declaratively map object domain model to the underlying
Search Engine, synchronizing data changes between Index and different
datasources. Also implements fast index operations and optimization.
2) Provides a abstraction on top of the Lucene low level API.
3) OSEM - ability to map java objects to the search engine through simple
xml mapping files.
4) Hibernate ORM framework and OJB tool has compass plugin witch provides
support for indexing datasource through OSEM and the named frameworks. So we
can take good points from Hibernate plugin development experience.
5) Cayenne framework is a natural match to Compass OSEM features. A simple
Compass::Gps device can index all the data that has both OSEM and ORM
mapping definition can be easily developed, and if the ORM tool provides
support for events, then mirroring can be supported as well.
I would appreciate any notes considering these two or maybe event another
possible approach.
Tomas Jucius
This archive was generated by hypermail 2.0.0 : Mon May 08 2006 - 16:15:04 EDT