Reputation: 1134
I've got a .NET desktop application where I need to search large data sets. Each data set has about 100000 items containing 10 fields. The types of the fields are string, datetime, int, float and custom item types. There can be around 5 concurrent data sets, but the searches are only within one data set.
The search types are
I'm thinking of the following alternatives:
Upvotes: 5
Views: 2091
Reputation: 20686
I recently discovered a company called FlexSearch who seems to be using Lucene directly via IKVM. They have open-sourced their build scripts at http://github.com/flexsearch/flexlucene, and there are current NuGet packages published.
I'm just now in the process of migrating from Lucene.NET to FlexLucene, but so far it seems straightforward and gets me on a something that seems to stay up-to-date.
Upvotes: 2
Reputation: 9789
Use Solr (4.1) and SolrNet. You will need to compile latest SolrNet from source to allow it to connect to Solr 4+ (it's very easy).
100 thousand documents with 10 fields is something you can prototype on your personal computer with Solr without it breaking sweat.
The most difficult part is 'custom' items. You need to figure out what you want to search them as and convert them into one of Solr's recognized formats.
On the other points:
1) Lucene.Net is behind the latest possible and integration with Solr is very easy from .Net
3) I think Lucene/Solr/ElasticSearch are leading in the open-source space and are even killing the proprietary solutions
4) DON'T! Just DON"T. You will want to add one feature after another (geo?) and will be just reinventing the wheel.
Upvotes: 5