I think it would be nice to look at Compass 
(http://www.compass-project.org/overview.html 
) or Hibernate Search (http://www.hibernate.org/410.html) for the  
future.

I think Compass is better for us since we don't want to rely on  
Hibernate for our storage in the future.

Here are some features of Compass:

"
- Simple Compass provides a simple API for working with Lucene. If you  
know how to use an ORM, then you will feel right at home with Compass  
with simple operations for save, and delete & query.
- Lucene Building on top of Lucene, Compass simplifies common usage  
patterns of Lucene such as google-style search, index updates as well  
as more advanced concepts such as caching and index sharding (sub  
indexes). Compass also uses built in optimizations for concurrent  
commits and merges.
- Mapping Compass provides support for mapping of different data  
"formats" - indexing and storing (caching) them in the Search Engine:  
Object to Search Engine Mapping (using annotations or xml), XML to  
Search Engine Mapping (using simple xpath expressions), and the low  
level Resource to Search Engine Mappping.
- Tx Compass provides a transactional API on top of the Search Engine  
supporting different transaction isolation levels. Externally, Compass  
provides a local transaction manager as well as integration with  
external transaction managers such as JTA (Sync and XA), Spring, and  
ORM ones.
- ORM Compass integrates seamlessly with most popular ORM frameworks  
allowing automatic mirroring, to the index, of the changes in data  
performed via the ORM tool. Compass has generic support for JPA as  
well as embedded support for Hibernate, OpenJPA, TopLink Essentials,  
and EclipseLink allow to add Compass using three simple steps.
- Spring Compass integrates seamlessly with Spring. Compass can be  
easily configured using Spring, integrates with Spring transaction  
management, has support for Spring MVC, and has Spring aspects built  
in for reflecting operations to the search engine.
- Distributed Compass simplifies the creation of distributed Lucene  
index by allowing to store the Lucene index in a database, as well as  
storing the index simply with Data Grid products such as GigaSpaces,  
Coherence and Terracotta.
"

The last point is especially important for our distributed lucene  
searcg feature developed during the GSOC.

Thanks
-Vincent



_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to