If you are considering Lucene as a Search Engine library for your application then you would certainly want to have a look at Compass. Compass is a open source project, which should be considered before starting from scratch development using Lucene.
I have seen many people not feeling comfortable dealing with Lucene APIs, Compass provides a simple API for using Lucene. Here are the features I gathered from its latest documentation on [http://www.compass-project.org]
It provides operations for save, and delete & query without knowing details of index handling.
Compass simplifies common usage patterns of Lucene such as google style search, index updates. It also has support for caching and index sharing (sub indexes).
In fact it has built in optimizations for concurrent commits and merges, which can be complex implementation if you are trying to do it on your own.
It provides a transactional API on top of the Search Engine supporting different transaction isolation levels.
It also provides a local transaction manager as well as integration with external transaction managers such as JTA (Sync and XA), Spring, and ORM ones.
It 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.
It also integrates 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.
It also 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.
For more details of Compass, have a look at the Compass web page here [ http://www.compass-project.org], If you are a Compass user/developer and facing some problem then you can post your problems in Compass forums at [http://forum.compass-project.org/index.jspa]. The community is really enthusiastic and you would get responses very quickly.
If you have some idea about best practices in search engine arena please share with us, and leave a comment. We would be glad to discuss on it.