Lucene.Net最佳实践

Eli*_*sie 34 .net lucene indexing lucene.net full-text-indexing

使用Lucene.Net的最佳做法是什么?或者我在哪里可以找到一个好的lucene.net使用样本?

Raz*_*zie 18

如果你要和Lucene一起工作,我会买一本从A到Z的好书.Lucene的学习曲线非常陡峭(在我看来).它不仅知道如何搜索你的重要内容 - 它也是关于索引它的.进行基本搜索很容易,但是创建一个由数百万条数据记录组成的索引,并且仍然能够对其进行快速搜索,但这很难实现.没有教程可以让你了解这一点.

我推荐由Michael McCandless,Erik Hatcher和OtisGospodnetić创作的Lucene in Action,Second Edition.虽然它是为Lucene而不是Lucene.NET编写的,但这不应该是一个问题,因为termonology和api基本相同.

但是,如果你想快速试一试,你可以阅读这个网站.这个名字说明了一切 :-)


And*_*mer 9

当数据量很大并且需要超快的读取响应时间时,我们经常使用Lucene.NET.我们通常坚持使用数据,因为我们需要搜索以及允许我们将结果映射回具有剩余细节的数据库表的密钥.然后,这允许我们搜索用户(在我们的例子中)检查他们过去的参与.这不仅仅是一个用户名搜索,而是一个迭代各种细节的搜索,试图查找该用户是否有任何其他实例(尽管形式不同).例如,我们查找用户ID(来自一个系统),来自另一个系统的ID,可能来自供应商系统的ID,闪存cookie GUID,站点cookie GUID等.当我们找到一个标识符时,我们为其他用户实例查找该标识符的其他实例.这允许我们将用户进入重复进入许多系统之一(因为他们参与任何系统只允许每24小时一次).在SQL中,这种算法(我模糊不清)将永远!在Lucene.NET中,它只需不到一秒钟.Lucene比SQL Server有更多的搜索可能性.它很糟糕的是写入或更新你的索引.这通常是作为一项工作......一下子完成.但是,如果您需要写入索引实时更新它,您需要编写一些聪明的代码以确保它以锁定的方式写入(想想使用单例排队)或者您的代码将重叠并爆炸!

我在我的书(ASP.NET社交网络)中介绍了Lucene.NET的用法,你可以在这里找到很多帮助.