Compass 2.1 Released


News: Compass 2.1 Released

  1. Compass 2.1 Released (6 messages)

    Compass, a Java Search Engine Framework simplifying the integration of google like search capabilities has released version 2.1. Major features include: JSEM, JSON to Search Engine Mapping. On top of the current OSEM (Object to Search Engine Mapping), XSEM (Xml to Search Engine Mapping), and RSEM (low level Document like structure to Search Engine Mapping), Compass now allows to easily map JSON content into the search engine in a declarative manner. Compass can now be configured using JSON both for plain configuration and mapping decelerations. Lucene 2.4 has been integrated with Compass, bringing performance and concurrency improvements. Compass also provides faster and asynchronous cache management. The ability to add and remove mappings, as well as configuration settings on the fly using Compass#rebuild() support. With OSEM, Compass now supports prefix definition for component mappings, lazy reference collection mapping, faster reflection based operations, support for ENUM as components, and many bug fixes. Support for mapping aware search queries has been enhanced, supporting inheritance and polymorphism as well as many other features. Queries like: Customer.fullName.firstName are now possible where Customer extends Person that defined FullName. Compass GPS, with its main feature allowing to simply integrate Compass with ORM libraries has been enhanced as well. Hibernate integration has been enhanced and several problems fixed (the dreaded collection not processed by flush exception). Eclipse Link has been officially added to the support ORM libraries, on top of Hibernate (core + JPA), OpenJPA, and TopLink. GenericJpaHelper has been added to allow for JPA implementation agnostic code written using Compass. Support for iBatis has been enhanced as well to use the latest iBatis release. Compass Needle, Compass integration with data grid based products has been enhanced as well. Compass now supports collocated indexing and distributed search on top of GigaSpaces, write behind indexing using Coherence cache store, and improved Terracotta support for large indexes. The features are built on top of the current ones mainly allowing to store the index automatically index data grid content, and perform google like search queries on it. Enjoy!.

    Threaded Messages (6)

  2. Re: Compass 2.1 Released[ Go to top ]

    Any good links on searching a complex object model (persisted via Hibernate EntityManager and Spring)? I've been looking at the documents and just now at the examples and I am not clear on how do declare what Object i am searching and what is returned.
  3. Re: Compass 2.1 Released[ Go to top ]

    Once you set up your Searchable mappings and configured Compass with Hibernate, then things should start getting indexed for you. This means changes done through Hibernate will be indexed automatically, and you can call the CompassGps#index() operation in order to completely reindex your data. Regarding searching, you should check CompassSession#queryBuilder(). It has several builder queries (such as the a queryString, boolean queries and so on). If you use a query string, once you use the "dot path" notation, for example,, then your search will be narrowed just to the Customer classes. You can also use CompassQuery#setTypes in order to narrow down the search to specific types.
  4. Re: Compass 2.1 Released[ Go to top ]

    Thx Shay. So if do "Customer....) then will that be returned in the CompassHits? or will it be objects Id? Or?
  5. enambe unmarshall[ Go to top ]

    If unmarshall is enabled then u can get the Customer object. I think, in 2.1, the object graph can be lazy loaded as well..In my app, i always work with the id though
  6. Re: enambe unmarshall[ Go to top ]

    If unmarshall is enabled then u can get the Customer object. I think, in 2.1, the object graph can be lazy loaded as well..In my app, i always work with the id though
    Thx. I think i would prefer to use the ID too. Now for some examples. :)
  7. Re: Compass 2.1 Released[ Go to top ]

    Its up to you. You basically have two modes in Compass. With supportUnamrshall set to true (the default), you get the object reconstructed from the index (as much as possible, basically, using STOREd properties). If you set supportUnmarshall to false, you only get the object with its ids initialized. You can still get STOREd properties using the Resource interface.