什么是最好,最活跃的开源.Netsearch技术?

我正试图决定一个.Net项目的开源search/索引技术。 似乎Java项目的标准是Lucene,但就.Net而言,Lucene.Net项目似乎相当不活跃。 这仍然是最好的select吗? 或者还有其他可行的select吗?

虽然Lucene.Net并没有完全发布(即完整的文档,网站更新),但SVN版本库仍然有新的提交。 例如最新版本(2.3.2)在07/24/09被标记( 见这里 )。 由于发展依然活跃,我将把它用于新的全文search项目。

知道这不是开源的,但它是微软提供的一个免费且非常全面的产品:

Microsoft Search Server 2008 Express

  • 开箱即用的相关性。

    本地化的界面。

    可扩展的search体验。

    没有预设的文件限制。

    连续传播索引。

    开箱即用的索引连接器

    内容摘要。

    突出显示。

    最好的赌注和定义。

    查询更正。

    重复崩溃。

    按属性过滤。

    按语言过滤。

    按datesorting。

    电子邮件/ RSS提醒

因为它是一个端口,lucene.net必然会滞后于Java。 我也不喜欢lucene port是如何直接复制的,尽pipe它让我更容易理解文档。 如果您不需要超紧密(二进制)集成,则需要考虑使用Solr 。 我以前用过它,取得了很好的成绩。 它仍然支持Lucene,但是我认为它有更好的特性会更好。 您可以通过HTTP端点从.net使用它。

有一个问题要问自己,就是你在search解决scheme中真正需要/想要的东西。 实施search有很多方法,并不是所有的解决scheme都适用于所有情况。

SQLite有FTS3(全文search3),可以做你想做的事情。 我没有直接的经验,但是我相信它是明确地开发来完成Lucene所做的,至less在简单的情况下是如此。 我不相信你可以改变标记器或任何东西(无论如何不修改源代码),但它是一个选项。

在几个项目中使用了Lucene.Net之后,我还想将使用IKVM.NET编译Lucene的Java版本的build议添加到.net代码中。 它的function非常好,你不用担心Java版本的过时问题。 你也可以编译所有额外的库,并使用它们(我在一个项目中使用GISsearch的东西)。

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

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

虽然它不是.net,我会build议使用Solr作为其build立在lucene上,并将很容易集成,因为它返回的XML / HTTP和JSON

据我所知,在现有的数据库上只需要一个全文索引,而SQL Server全文search原则上是为你工作的,但是你现在的实现/设置太慢了。

如果我是你,我不会去一个完全不同的方法(只要想一想外部索引与数据库同步,或者join来自两者的查询结果等)。 尝试解决与SQL Server的性能问题,因为没有人会认真地假设search7k行6秒是一个企业级解决scheme,用于一些最大的数据库周围的最后一句话…也许试着问一个新的问题关于这个function常见的陷阱(我不是这方面的专家),你可能会得到一个简单的修复,而不是完全重build你的search体系结构;)

看看www.searcharoo.net 。 它有一个爬虫,function如工作词干,索引办公文件/ PDF文件。 作者对codeproject文章非常积极,并且很快回答了问题。

我曾经使用DotLucene但遇到了一些问题。 一个重要的原因是它需要充分的信任才能运行。

我后来转移到使用SearchAroo: http : //www.searcharoo.net/

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

如果你正在寻找另一种select,我一定要看看。

如果你不坚持.NET,你可以尝试一下Sphinx。 开源并可用于所有平台(Windows / Linux)。