I want to integrate full-text search into a .NET application with [Fluent] NHibernate-based data access. So far Lucene.NET and NHibernate Search combination appears to be the most reasonable option there. However, there are several projects built on top of Lucene which are said to mitigate Lucene complexity and add new features (e.g. Solr or ElasticSearch) as well as some .NET wrappers around those libraries. So, what are the [best] options for my project?
2 Answers
If you already have a nhibernate data access, you should go with nhibernate search, as it integrates very nicely, and learning curve is not too steep.
Solr and Elasticsearch are more system independant (restful api for example), but will need more plumbing work.
And you have a lot of resource here : https://stackoverflow.com/questions/tagged/nhibernate.search
-
Thanks for your reply, Mathieu (+). Do you think that investing some effort into such plumbing code will be justified with the functionality implemented by Solr or ElasticSearch (e.g. scalability)? – Primary Key May 17 '11 at 21:55
-
I used NHS for indexing 15GB worth of documents, and didn't encounter performance issues. How much data are you going to index ? Will it update frequently ? – mathieu May 18 '11 at 06:56
-
It's a startup B2B application and the amount of text depends on how many customers our sales people can get. So scalability is really a concern there. Nevertheless, I don't think we are going to hit the 15GB any time soon. – Primary Key May 18 '11 at 17:35
Since you're on .NET, Solr and Hibernate Search can't really be of help and would probably require you to get another server dedicated for search only. I'm not familiar with NHibernate Search et al, but as .NET ports go, its most likely quite behind the real Java thing.
If its feasible for you to change your data-access layer, checkout RavenDB. It is written in C#/.NET on top of Lucene, so you get a fast schema-less document DB and a full-text search engine packed as one.

- 4,472
- 1
- 30
- 37
-
Thanks for your reply. Unfortunately, switching to another data access technology for the application is nearly impossible and certainly can not be justified by only full-text search, although RavenDB is definitely worth checking out. – Primary Key May 17 '11 at 22:19
-
You are certainly right: NH.Search is not actively maintained apart from ensuring it builds against the latest NH release - it hasn't been updated since it was initially ported. – Simon Bartlett May 17 '11 at 23:00