Compass 1.2 M3 Released
I am pleased to announce the release of Compass 1.2 M3. Compass 1.2 M3 includes several major features and considered to be a major and last milestone within the 1.2 release lifecycle (RC is next). Some of the major features include:
Embedded Searchable OpenJPA
A “native” integration with OpenJPA allowing to configure Compass within a persistence unit and have OpenJPA start Compass up and expose both mirroring (changes made through OpenJPA are mirrored to the search engine though Compass) and indexing (the ability to execute parallel index operation to reindex the whole database based on Compass and OpenJPA mappings). See here for more details.
Improved Query Support
Compass now supports polymorphic queries, allowing to execute queries that match a concrete alias/class and all its sub classes / extended aliases.
Compass also has improved range and exact queries when using numbers and dates (actually, on any custom converter as well). Executing queries such as: “age:1″ or “age:[1-90]” will automatically work (with proper padding format within the mapping). See here for more details.
Dates now support a relative now format, allowing to execute queries such as: “publishDate:now-10days”. See here for more details.
Improved Lucene 2.2 Support
Compass comes with better support for Lucene 2.2, including pluggable Index deletion policy (allows for storing history of commit points) including built in support for several index deletion policies. See here for more information.
More Like This
Compass now exposes Lucene “more like this” query capabilities in very simple API. A simple compassSesion.queryBuilder().moreLikeThis(”a”, “1″).toQuery().hits() can be executed to perform a more like this on the “all” property (remember to have term vector set to yes on the all property) that will match things like the Resource identified by alias “a” with id “1″.
Local Cache Support
Compass now supports the ability to define a local cache per sub index. This allows to configure certain sub indexes to be stored in memory for faster searching, or have a local file system cache when working with Jdbc. The new local cache mechanism fully supports several clients connecting to the same index storage location. See here here for more details.
Improved JPA Device
An improved JPA device allowing to configure custom indexers with default implementation including specific ones for OpenJPA and Hibernate for better performance (still trying to figure out how to do that in Toplink and being too lazy too look at the source code :), see this Toplink forum thread ).
New Hibernate Gps Device
A complete new Hibernate Gps Device allowing for several custom simpler extension points such as indexer, custom query provider, … . Compass comes with two default indexer implementations including pagination and scrollable (better performance, though latest Hibernate has a memory leak that will be fixed in the next minor version - 3.2.5). See here for more details.
Deprecated Hibernate2GpsDevice and Hibernate3GpsDevice still exists within Compass codebase, thought they have been refactored into a different package (org.compass.gps.device.hibernate.dep).
Last
A lot of this features are major features with Compass. I will blog more about each one in separate posts. I am really excited about the more native integration with OpenJPA, and would like to thank Patrick Linskey for doing an amazing job in the integration effort. Suggestion or enhancements to OpenJPA to allow for such an integration were done faster then I could ask for them, amazing!.
August 2nd, 2007 at 3:57 pm
Congratulations on getting the release out! It’s been fun working on the integration; it’s always nice to get a chance to do some actual coding while at conferences.
August 5th, 2007 at 2:05 am
Thanks for another great release, really appreciate the Hibernate GPS updates. I’ve put the custom Hibernate index queries to good use.
August 5th, 2007 at 11:43 pm
Excellent! Can’t wait to give the More Like This function a try.