5

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

搜索类型是

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

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

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

2 回答 2

5

使用 Solr (4.1) 和SolrNet。您需要从源代码编译最新的 SolrNet 以允许它连接到 Solr 4+(这很容易)。

包含 10 个字段的 10 万个文档是您可以使用 Solr 在您的个人计算机上进行原型制作而不会费力的东西。

最困难的部分是“自定义”项目。您需要弄清楚要搜索它们的内容并将它们转换为 Solr 可识别的格式之一。

关于其他点:

1) Lucene.Net 落后于最新的可能,从 .Net 与 Solr 的集成非常容易

3) 我认为 Lucene/Solr/ElasticSearch 在开源领域处于领先地位,甚至正在扼杀专有解决方案

4)不要!只是不要。你会想要一个接一个地添加一个功能(地理?),并且只是重新发明轮子。

于 2013-02-21T02:31:03.420 回答
2

我最近发现了一家名为FlexSearch的公司,它似乎直接通过 IKVM 使用 Lucene。他们在http://github.com/flexsearch/flexlucene开源了他们的构建脚本,并且发布了当前的 NuGet 包。

我现在正处于从 Lucene.NET 迁移到 FlexLucene 的过程中,但到目前为止,它看起来很简单,并且让我得到了一个似乎保持最新的东西。

于 2015-10-30T22:49:37.267 回答