gpt4 book ai didi

mongodb - 使用DataImportHandler连接MongoDB和Solr的步骤

转载 作者:行者123 更新时间:2023-12-01 10:17:15 26 4
gpt4 key购买 nike

我是SOLR和MONGODB的新手。

我正在尝试使用DataImportHandler将数据从mongodb索引到SOLR中,但找不到所需遵循的确切步骤。

您能帮助我获得使用DataImportHandler将MongoDB索引到Solr的确切步骤吗?

SolrVersion-solr-4.6.0

MongoDB版本-2.2.7

最佳答案

答案晚了,但是以为人们可能会发现它有用。

以下是使用DataImportHandler将数据从mongodb导入到Solr 4.7.0的步骤。

步骤1:

假设您的Mongodb具有以下数据库和集合

Database Name: Test
Collection Name: sample
sample集合具有以下文档
db.sample.find()
{ "_id" : ObjectId("54c0c6666ee638a21198793b"), "Name" : "Rahul", "EmpNumber" : 452123 }
{ "_id" : ObjectId("54c0c7486ee638a21198793c"), "Name" : "Manohar", "EmpNumber" : 784521 }

第2步:

在您的solrhome文件夹(其中有 libbin文件夹)中创建一个 collection1文件夹

将以下jar文件添加到 lib文件夹。您可以从 here下载solr-mongo-importer!
- solr-dataimporthandler-4.7.0.jar
- solr-mongo-importer-1.0.0.jar
- mongo-java-driver-2.10.1.jar (this is the mongo java driver)

第三步:

声明schema.xml中的Solr字段(假设默认情况下已经定义了ID)

<fields> </fields>标记内的schema.xml中添加以下字段。
 <field name="Name" type="text_general" indexed="true" stored="true"/>
<field name="EmployeeNumber" type="int" indexed="true" stored="true"/>

第四步:

通过在 <config> </config>标记内添加以下代码来声明solrconfig.xml中的数据配置文件。
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">  
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>

步骤5:

在路径collection1\conf\中创建一个data-config.xml文件(默认情况下包含solrconfig.xml和schema.xml)

数据配置文件
<?xml version="1.0"?>
<dataConfig>
<dataSource name="MyMongo" type="MongoDataSource" database="Test" />
<document name="import">
<!-- if query="" then it imports everything -->
<entity processor="MongoEntityProcessor"
query="{Name:'Rahul'}"
collection="sample"
datasource="MyMongo"
transformer="MongoMapperTransformer" name="sample_entity">

<!-- If mongoField name and the field declared in schema.xml are same than no need to declare below.
If not same than you have to refer the mongoField to field in schema.xml
( Ex: mongoField="EmpNumber" to name="EmployeeNumber"). -->

<field column="_id" name="id"/>
<field column="EmpNumber" name="EmployeeNumber" mongoField="EmpNumber"/>
</entity>
</document>
</dataConfig>

步骤6:

假设solr(我已经使用端口8080)正在运行,请在浏览器中打开以下链接 http://localhost:8080/solr/dataimport?command=full-import,以将数据从mongodb导入solr。

导入的字段是_id,Name和EmpNumber(MongoDB),作为id,Name和EmployeeNumber(Solr)。

您可以在 http://localhost:8080/solr/query?q=*中查看结果

关于mongodb - 使用DataImportHandler连接MongoDB和Solr的步骤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21450555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com