Fluent NHibernate + Lucene Search (NHibernate.Search)
-
23-08-2019 - |
Question
I'm using Fluent NHibernate and I would like to implement NHibernate.Search with Lucene but I can't find any examples on how to do that with Fluent NHibernate. It appears there are two steps. (According to Castle)
Set the Hibernate properties in the configuration:
- hibernate.search.default.directory_provider
- hibernate.search.default.indexBase
- hibernate.search.analyzer
Initializing the Event Listeners to index persisted objcts
- configuration.SetListener(ListenerType.PostUpdate, new FullTextIndexEventListener());
- configuration.SetListener(ListenerType.PostInsert, new FullTextIndexEventListener());
- configuration.SetListener(ListenerType.PostDelete, new FullTextIndexEventListener());
I figured out how to add properties to the Fluent NHibernate Source Configuration, but I cannot find where the Event Listeners are setup.
Solution
If you're using the Fluent Configuration API, then you just need to use the ExposeConfiguration
method to get at the NHibernate Configuration instance.
Fluently.Configure()
.Database(...)
.Mappings(...)
.ExposeConfiguration(cfg =>
{
cfg.SetListener(...);
cfg.SetListener(...);
})
.BuildSessionFactory();
OTHER TIPS
I'm working on a Fluent API for Lucene which removes the need for attributes and integrated nicely with FNH
Its still very pre-alpha, contributions welcome!