集成MONGODB和SOLR

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集成MONGODB和SOLR相关的知识,希望对你有一定的参考价值。

我尝试使用mongodb提供的MONGO CONNECTOR集成MONGODB和SOLR,mongodb在副本集配置中运行。

**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吗?

答案

我遇到了同样的问题。我无法解决所以我发现了一个有趣的链接:http://derickrethans.nl/mongodb-and-solr.html它通过php脚本连接mongo和solr。一个

另一答案

第1步:安装Mongo Connector

安装mongo连接器运行

 Pip install mongo-connector

第2步:创建Solr核心

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

第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还存储与其在字段ns和_ts中索引的每个mongodb文档关联的元数据。还要将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" />*

还要将auto commit配置为true,以便Solr在配置的时间之后自动提交MongoDB中的数据。

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

步骤6:需要重新启动Solr

Bin/solr restart -force

启动MongoDB服务器Mongo Connector需要运行MongoDB副本集才能在Solr中索引MongoDB数据。副本集是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:使用Solr Run Mongo-connector命令启动MongoDB Connector和索引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

在上面的语句中solr.wlslog - > solr是一个数据库名称wlslog是一个集合名称Solr / wlslog - > wlslog是一个CORE名称

有关未来参考,请使用以下链接https://www.toadworld.com/platforms/nosql/b/weblog/archive/2017/02/03/indexing-mongodb-data-in-apache-solr

以上是关于集成MONGODB和SOLR的主要内容,如果未能解决你的问题,请参考以下文章

02 Apache Solr: 概览 Solr在信息系统架构中的位置

在 solr 3.4 中放置突出显示片段配置的位置

solr 学习片段

solr搜索之demo和集成IKAnalyzer

solr 7+tomcat 8 + mysql实现solr 7基本使用(安装集成中文分词器定时同步数据库数据以及项目集成)

如何将代码片段存储在 mongodb 中?