2010-08-15 96 views
2

我是一名.NET开发人员,我需要学习Lucene,因此我们可以运行非常大规模的搜索服务,删除最终用户无法访问的条目。 (即用户可以搜索清除等级为3或更高,但不等于清除等级2或1的所有文件)我从哪里开始学习Lucene.NET Solr Hadoop和MapReduce?

从哪里开始学习,我应该考虑哪些产品?说实话,我有点不知所措,但我决定全力以赴......最终。

+0

对于该问题+1。我对MapReduce非常感兴趣。 – dierre 2010-08-15 14:16:54

回答

1

如果您想要一本涵盖Lucene所有基本知识的书,请考虑“Lucene in Action”。尽管代码示例是Java,但您可以轻松将它们移植到.NET中。当然,网络上也有大量资源,比如SO和Lucene邮件列表,这些应该可以帮助你。

对于你描述的项目,你应该看看Solr,因为它解决了很多可扩展性等问题,并且通过Solrnet可以很容易地集成到你的.NET应用程序中。要按级别限制访问,索引文档应该包含一个名为“Level”的字段(比如说),并且在用户查询的后台中,使用布尔查询构造追加“Level:Level-1”查询。

在这个阶段,我的建议是远离Hadoop(Apache Map-reduce实现),并且坚持使用Solr。如果你不想了解它。它也有一本非常有用的书,你猜对了“Hadoop In Action”(同样来自曼宁出版社)。

+0

谢谢!你能帮我理解Hadoop和Solr之间的区别吗?他们是否以不同的方式提供相同的要求? – LamonteCristo 2010-08-15 19:37:05

+0

他们是苹果和橘子。对于大多数企业终端应用程序来说,Solr应该足够和可以扩展。 Hadoop是雅虎等组织用于搜索索引的分布式计算平台。 Hadoop也用于高性能机器学习任务,Apache Mahout就是这样一个项目。 底线:既然你表示你是新手,我的建议是坚持Solr。除非我错过了某些东西,否则我认为应该满足您的要求。 – Mikos 2010-08-15 22:35:54

+0

由于我有大量的数据必须实时编入索引,也许我需要Hadoop来处理和索引数据,Solr允许用户读取数据? (通过REST?) – LamonteCristo 2010-08-16 16:10:30

1

您似乎对每个项目(Lucene/Solr/Hadoop/etc)究竟做了什么感到困惑。所以首先要做的是理解每个项目的目的。阅读有关它们的文档和博客。如果可能的话,购买并阅读有关它们的书籍。

例如,MapReduce和Hadoop与您的安全需求无关。 Hadoop是分布式可伸缩计算的平台。但是Solr is scalable on its own。您可能想要使用Hadoop来distribute a crawler though (e.g. Nutch)