2013-06-19 82 views
4

我試圖通過使用由mongodb提供的運行在副本集配置中的MONGO CONNECTOR來集成MONGODB和SOLR。集成MONGODB和SOLR

**python2.7 mongo_connector.py -m localhost:27017 -t http://localhost:8983/solr -u_id -d ./doc_managers/solr_doc_manager.py** 

我的輸出

2013-06-19 16:19:10,943 - INFO - Finished 'http://localhost:8983/solr/update/?commit=true' (post) with body 'u'<commit ' in 0.012 seconds. 

但我不能配置SOLR擺脫MongoDB中的文件。請幫助我如何配置SOLR以從MONGODB獲取文檔。我應該使用SolrMongoImporter嗎?

回答

0

步驟1:安裝蒙戈連接器

要安裝蒙戈連接器運行

Pip install mongo-connector 

步驟2:創建Solr的核心

./bin/solr create -c <corename>-p 8983 -s 3 -rf 3 

步驟3:配置到Solr

在schema.xml配置文件中指定要建立索引的mongodb文檔中的字段。在vi編輯器中打開schema.xml。作爲

vi/solr/solr-6.6.2/server/solr/configsets/data_driven_schema_configs/ 
conf/schema.xml 

步驟4:蒙戈連接器還存儲與每個mongodb的文檔它編入索引字段NS和_TS相關聯的元數據。還要將ns和_ts字段添加到schema.xml。

<schema> 
<?xml version="1.0" encoding="UTF-8" ?> 
<schema name="example" version="1.5"> 
<field name="time_stamp" type="string" indexed="true"  stored="true"  
multiValued="false" /> 
<field name="category" type="string" indexed="true"  stored="true"  
multiValued="false" /> 
<field name="type" type="string" indexed="true"  stored="true"  
multiValued="false" /> 
<field name="servername" type="string" indexed="true"  stored="true"  
multiValued="false" /> 
<field name="code" type="string" indexed="true"  stored="true"  
multiValued="false" /> 
<field name="msg" type="string" indexed="true"  stored="true"  
multiValued="false" /> 
<field name="_ts" type="long" indexed="true" stored="true" /> 
<field name="ns" type="string" indexed="true" stored="true"/> 
<field name="_version_" type="long" indexed="true" stored="true"/> 

</schema> 

步驟5:我們還需要配置 org.apache.solr.handler.admin.LukeRequestHandler請求處理程序在solrconfig.xml中。

在vi編輯器中打開solrconfig.xml。

vi ./solr-5.3.1/server/solr/configsets/basic_configs/conf/solrconfig.xml 

指定Mongo Connector的請求處理程序。

*<requestHandler name="/admin/luke" 
class="org.apache.solr.handler.admin.LukeRequestHandler" />* 

還配置自動提交爲true,以便Solr在配置的時間後自動提交來自MongoDB的數據。

<autoCommit> 
<maxTime>15000</maxTime> 
<openSearcher>true</openSearcher> 
</autoCommit> 

步驟6:Solr的需要重新啓動

Bin/solr restart -force 

啓動MongoDB的服務器 蒙戈連接器需要一個MongoDB的副本設置爲運行它在Solr的索引MongoDB的數據。副本集是實現複製和自動故障轉移的MongoDB服務器集羣。副本集可能只包含一臺服務器,端口指定爲27017,MongoDB的數據目錄指定爲/ data/db,副本集名稱用-replSet選項指定爲rs0。

Sudo mongod --port 27017 --dbpath /data/db --replSet rs0 

步驟7:啓動MongoDB的殼牌 啓動MongoDB的外殼用下面的命令

Mongo 

MongoDB的外殼被啓動。我們需要啓動副本集。運行以下命令啓動副本集。

rs.initiate() 

步驟8:啓動MongoDB的連接器並且如下面

mongo-connector --unique-key=id –n solr.wlslog -m localhost:27017 -t 
http://xx.xxx.xxx.xx:8983/solr/wlslog -d solr_doc_manager 

在上面的語句索引MongoDB的數據庫使用Solr 運行蒙戈連接器命令 solr.wlslog - >的solr是一個數據庫名稱wlslog是一個集合名稱 Solr/wlslog - > wlslog是一個核心名稱

未來的參考使用以下鏈接 https://www.toadworld.com/platforms/nosql/b/weblog/archive/2017/02/03/indexing-mongodb-data-in-apache-solr