Just read the documentation of Lucene at http://lucene.apache.org/java/docs/. You may find down the Lucene index update. As my memory is good, you need to look up the index field name in the lucene indexed file and you can update it.
Using the Lucene API is not the problem. Looks fairly simple to get going.
The problem is that it says that you can set up annotations to have Hibernate automagically maintain a Lucene index without writing a single line of Java!
In fact, as well as hooking automatic Lucene updates in, you should be able to hook your own listening classes in to create/update/delete events on persisted objects for other reasons like security auditing.
Fecked if I can make it work though!
OK, as usual, the docs are completely lacking.
Here is what worked.
In META_INF/persistence.xml in the .par file:
<property name="hibernate.ejb.cfgfile" value="hibernate_config.xml"/>
hibernate_config.xml goes in the root level in the .par file. It contains:
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <event type="post-commit-update"> <listener class="org.hibernate.lucene.event.LuceneEventListener"/> </event> <event type="post-commit-insert"> <listener class="org.hibernate.lucene.event.LuceneEventListener"/> </event> <event type="post-commit-delete"> <listener class="org.hibernate.lucene.event.LuceneEventListener"/> </event> </session-factory> </hibernate-configuration>
Why not just document it properly?