天天看點

sorl6.0+jetty+mysql搭建solr服務

sorl6.0+jetty+mysql搭建solr服務

  在path路徑下将 bin檔案夾對應的目錄加入,然後輸入 solr start(或者 solr start -p port,指定端口啟動)。在浏覽器中通路如下:

sorl6.0+jetty+mysql搭建solr服務

  當然,還可以啟動其他樣例的服務,在example目錄下有一個READEME.txt,如果感興趣請看一下。指令格式如下:

  在server/solr目錄下,有一個README.txt的檔案,其中說明了如何建立solr core。最簡單的建立是直接複制solr中為我們提供好的例子,打開server/solr/configsets目錄會發現裡面已經有三個例子,因為我們是要從資料庫導入資料,是以複制 “data_driven_schema_configs” 這個例子并改名為 “myCollections”。

sorl6.0+jetty+mysql搭建solr服務

  為了導入資料和連結mysql,我們還需要導入兩個重要的jar包。由于mysql的jar包并沒有在項目中,我是複制了一份放到了dist目錄下面了。另外兩個需要的jar包就是dist目錄下帶有“dataimport”辨別的jar包。

  然後打開myCollections/conf/solrconfig.xml,引用上面提到的jar包,如下。

sorl6.0+jetty+mysql搭建solr服務
sorl6.0+jetty+mysql搭建solr服務

  建立好之後,随便寫入一點兒資料。

  繼續修改myCollections/conf/solrconfig.xml,搜尋 <requestHandler name="/select" class="solr.SearchHandler"> ,然後在該行之上添加如下代碼。

sorl6.0+jetty+mysql搭建solr服務

  在myCollections/conf目錄下建立data-config.xml, 内容如下。

 說明:

  dataSource是資料庫資料源。Entity就是一張表對應的實體,pk是主鍵,query是查詢語句。Field對應一個字段,column是資料庫裡的column名,後面的name屬性對應着Solr的Filed的名字。其中solrdata是資料庫名,goods是表名。

  其中deltaQuery是增量索引,原理是從資料庫中根據deltaQuery指定的SQL語句查詢出所有需要增量導入的資料的ID号。然後根據deltaImportQuery指定的SQL語句傳回所有這些ID的資料,即為這次增量導入所要處理的資料。核心思想是:通過内置變量“${dih.delta.id}”和 “${dataimporter.last_index_time}”來記錄本次要索引的id和最近一次索引的時間。

  搜尋 <field name= ,添加關聯資料庫表Column的資訊。

sorl6.0+jetty+mysql搭建solr服務

  注意:預設的 filed 不要删除哦!

  (1).點選Core Admin,配置我們建立的solr Core的資訊,如下所示。

sorl6.0+jetty+mysql搭建solr服務

  (2).點選 Add Core,如下所示。

sorl6.0+jetty+mysql搭建solr服務

  (3).測試索引是否成功

  

sorl6.0+jetty+mysql搭建solr服務
sorl6.0+jetty+mysql搭建solr服務
sorl6.0+jetty+mysql搭建solr服務

索引成功

  (4).監測查詢成功

sorl6.0+jetty+mysql搭建solr服務

查詢成功

  簡單建立一個java項目,依賴上dist目錄下的solr-solrj-6.0.0.jar。

  測試代碼如下。

sorl6.0+jetty+mysql搭建solr服務
sorl6.0+jetty+mysql搭建solr服務

View Code

  對應的實體類。

sorl6.0+jetty+mysql搭建solr服務
sorl6.0+jetty+mysql搭建solr服務

  每測試一次,可以在浏覽器中通過query方式檢視測試結果是否正确。