2010-08-15 99 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)

相關問題