什么是在.NET中使用的好的反向索引库?

时间:2013-02-20 22:29:41

标签: .net solr lucene indexing lucene.net

我有一个.NET桌面应用程序,我需要搜索大型数据集。每个数据集包含大约100000个包含10个字段的项目。字段的类型是字符串,日期时间,整数,浮点数和自定义项类型。可以有大约5个并发数据集,但搜索只在一个数据集中。

搜索类型

  • 全文支持通配符
  • 搜索特定字段
  • 日期范围

我正在考虑以下替代方案:

  1. Lucene.NET。但是端口和维护似乎是一项巨大的努力,因为Solr满足了服务器需求,我对Lucene.NET的未来感到担忧。您对Lucene.NET的未来发展有什么看法?
  2. 在桌面上使用Solr作为单独的进程。
  3. 是否有基于Lucene的解决方案的替代方案?
  4. 创建我自己的。有一些参考/教程吗?好消息是,我不需要复杂的文本分析或任何评分/分面功能。只需搜索一个术语(可选的通配符)并返回一个项目列表。

2 个答案:

答案 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.