什么是最好和最活跃的开源.Net搜索技术?

时间:2009-08-11 00:49:17

标签: .net search lucene lucene.net

我正在尝试为.Net项目决定开源搜索/索引技术。似乎Java项目的标准是Lucene,但就.Net而言,Lucene.Net项目似乎非常不活跃。这仍然是最好的选择吗?还是有其他可行的替代方案吗?

11 个答案:

答案 0 :(得分:23)

虽然Lucene.Net已经有一段时间没有“全面发布”版本(即完整文档,网站更新),但仍有新的提交到其SVN存储库。 例如,最新版本(2.3.2)在07/24/09(see here)中被标记。 由于开发仍处于活动状态,我会将其用于新的全文搜索项目。

答案 1 :(得分:11)

知道这不是开源的,但它是来自Microsoft的免费和非常全面的产品:

Microsoft Search Server 2008 Express

  • 开箱即用的相关性。

    本地化界面。

    可扩展的搜索体验。

    没有预设文件限制。

    连续传播索引。

    开箱即用的索引连接器

    内容摘要。

    点击突出显示。

    最佳投注和定义。

    查询更正。

    重复崩溃。

    按属性过滤。

    按语言过滤。

    按日期排序。

    电子邮件/ RSS提醒

答案 2 :(得分:6)

由于它是一个端口,lucene.net必然会落后于java。我也不喜欢lucene端口是如何直接复制,虽然它确实使我更容易在我认为的文档。如果您不需要超紧(二进制)集成,则需要考虑使用Solr。我以前用过它取得了很好的成功。它仍然由Lucene驱动,但我认为它更好,因为它有一些更好的功能。您可以通过HTTP端点从.net中使用它。

要问自己的一个问题是您在搜索解决方案中真正需要/想要的是什么。有很多方法可以实现搜索,并非所有解决方案都适用于所有情况。

答案 3 :(得分:6)

SQLite有FTS3(全文搜索3)可以做你想做的事。我没有直接经验,但我相信它是明确开发的,用来做Lucene的工作,至少在简单的情况下。我不相信你可以改变tokenizer或任何东西(无论如何都不修改源代码),但它是一个选项。

答案 4 :(得分:5)

在几个项目中使用了Lucene.Net之后,我还想添加一个使用IKVM.NET将lucene的Java版本编译成.net代码的建议。它运行得非常好,您永远不必担心Java版本的过时。您还可以选择编译所有额外的库并使用它们(我在一个项目中使用GIS搜索)。

答案 5 :(得分:4)

Lucene.net是在nHibernate中实现的,所以如果你也在寻找一个O / R映射器,这个组合可能值得深入研究。

我们目前正在开发一个原型,并在几分钟内完成配置Lucene(我们使用流利的nhibernate)。

答案 6 :(得分:3)

虽然它不是.net我会建议使用Solr作为它的内置lucene,并且由于它返回XML / HTTP和JSON

,因此很容易集成

答案 7 :(得分:3)

据我所知,您需要“只”现有数据库的全文索引,而SQL Server全文搜索原则上适合您,但您当前的实现/设置速度太慢。

如果我是你,我不会采用完全不同的方法(只考虑一下这个混乱,以保持外部索引与数据库同步,或者从两者中加入查询结果等)。尝试修复SQL Server的性能问题,因为没有人会认真地假设搜索7k行的6秒是企业级解决方案的最后一个词,用于一些最大的数据库...也许尝试提出一个新问题关于这个功能的常见缺陷(我不是这方面的专家),你最终可能会得到一个简单的修复,而不是完全重建你的搜索架构;)

答案 8 :(得分:2)

看看www.searcharoo.net。它有一个爬虫,并具有工作源,索引办公室文档/ PDF等功能。作者对代码项目文章非常积极,并且很快就回答了问题。

答案 9 :(得分:1)

我曾经使用过DotLucene,但遇到了很多问题。一个主要问题是它需要完全信任才能运行。

此后我开始使用SearchAroo:http://www.searcharoo.net/

它使用XML数据存储,我发现它的性能非常类似于dot lucene。

如果你正在寻找另一种选择,我肯定会看看。

答案 10 :(得分:0)

如果你真的不坚持.Net,你可以尝试一下Sphinx。开放源代码,适用于所有平台(Windows / Linux)。