天天看點

《Hadoop生态》——第二章 資料庫與資料管理——Solr

Solr

《Hadoop生态》——第二章 資料庫與資料管理——Solr

許可證: Apache License, Version 2.0

活躍度: 高

目的: 文檔倉庫

官方位址: https://lucene.apache.org/solr

Hadoop內建: API相容

有時候你隻是想從一大堆文檔中做查詢。但是不是所有的任務都得對PB級的資料做大型複雜的分析。對于大多數情況,你可能覺得對于一個簡單的Unix grep指令或者Windows查詢來講資料量還是挺大的,但是由不值得把這個任務交給一個資料科學團隊。Solr就适合于這種中間情況,它提供了一種非常易用的方法對多個文檔的内容進行快速的查詢檢索。

Solr支援分布式架構,它提供了許多分布式系統期望有的特征(例如線性拓展,資料複制,失效備份)。它是基于Lucene的,Lucene是一種十分流行的文檔内容檢索架構,并且提供了很多工具,這些工具可以提供檢索并查詢資料。

雖然Solr可以用于Hadoop分布式檔案系統(HDFS)來存儲資料,但是它不是完全相容Hadoop,不能用MapReduce或者YARN建立索引和對查詢做出響應。有一個叫Blur的工具有類似的功能作用,它也是在Lucenne架構上建立的,Lucenne則可以利用整個Hadoop棧。

教程連結

除了官方網站Solr首頁上的教程,Solr Wiki上也有很好的資訊。

示例代碼

在這個例子中,我們假設我們已經有了一個半結構化的資料集,這些資料包含了帶有标簽的評論,這些标簽明确地标出了标題和評論的内容。這些評論會單獨地存儲在reviews目錄下的JSON檔案中。

我們從告訴Solr資料的索引開始,做這件事情可以後很多方法,所有的都是單一的交換。在本例中,我們用最簡單的機制,就是Solr安裝目錄下的 exampledocs/子目錄 post.sh:

一旦我們的評論建立的索引,他們就準備搜尋了。Solr有它自己的圖形使用者界面(GUI),可以用于簡單的搜尋。我們打開GUI然後查詢包含“great”的評論:

這個搜尋告訴Solr我們想要的評論是title字段((fl=title)是任意評論的review_text字段包含“great”