集成MONGODB和SOLR

4

我尝试使用mongodb提供的mongo连接器将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吗?

2个回答

0

0
步骤1: 安装Mongo Connector

要安装Mongo连接器,请运行以下命令:

 Pip install mongo-connector

步骤2:创建Solr核心

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

步骤三: 配置Solr

要索引的mongodb文档中的字段在schema.xml配置文件中指定。打开vi编辑器中的schema.xml。如下:

vi/solr/solr-6.6.2/server/solr/configsets/data_driven_schema_configs/ 
conf/schema.xml
步骤4:Mongo Connector还将与其索引的每个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: 我们还需要在 solrconfig.xml 中配置 org.apache.solr.handler.admin.LukeRequestHandler 请求处理程序。

在 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 服务器 Mongo Connector 需要运行一个 MongoDB 副本集才能将 MongoDB 数据索引到 Solr 中。副本集是一组实现复制和自动故障转移的 MongoDB 服务器集群。副本集可以只包含单个服务器,端口号为 27017,MongoDB 的数据目录指定为 /data/db,副本集名称使用 --replSet 选项指定为 rs0。

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

步骤 7:启动 MongoDB Shell 使用以下命令启动 MongoDB shell

Mongo

MongoDB shell已启动。我们需要启动复制集。运行以下命令以启动复制集。

 rs.initiate()

步骤8: 启动MongoDB连接器并使用Solr索引MongoDB数据库 运行以下Mongo-connector命令

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

在上述语句中, 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接