我有一个.NET桌面应用程序,我需要搜索大型数据集。每个数据集包含大约100000个包含10个字段的项目。字段的类型是字符串,日期时间,整数,浮点数和自定义项类型。可以有大约5个并发数据集,但搜索只在一个数据集中。
搜索类型
我正在考虑以下替代方案:
答案 0 :(得分:4)
使用Solr(4.1)和SolrNet。您需要从源代码编译最新的SolrNet以允许它连接到Solr 4+(这很容易)。
带有10个字段的10万个文档是您可以使用Solr在您的个人计算机上进行原型制作而不会出汗的原因。
最困难的部分是'自定义'项目。您需要弄清楚要搜索它们的内容,并将它们转换为Solr公认的格式之一。
关于其他问题:
1)Lucene.Net落后于最新可能,与Solr的集成非常容易从.Net
3)我认为Lucene / Solr / ElasticSearch在开源领域处于领先地位,甚至杀死了专有解决方案
4)不要!只是DON“T。你会想要一个接一个地添加一个功能(地理位置?),并且只是重新发明轮子。
答案 1 :(得分:1)
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.