如何在Solr 4中导入和索引MongoDB数据

3

我是一个新用户,对solrmongodb不太熟悉。我已经在mongodb中创建了数据库和集合。

现在我想将该mongodb集合导入并索引到solr中,以便应用程序可以在数据库中搜索大量数据。我在互联网上搜索了很多,但是没有得到令人满意的信息。请问有人能告诉我如何按步骤在solr中进行索引吗?

以下是我创建的集合:

db.stud.find().pretty()

{ "_id" : 1, "roll" : 59, "name" : "sachin", "class" : "MCA" }
{ "_id" : 2, "roll" : 57, "name" : "jay", "class" : "MCA" }
{ "_id" : 3, "roll" : 101, "name" : "akash", "class" : "BCA" }
{ "_id" : 4, "roll" : 11, "name" : "amit", "class" : "MCS" }
{ "_id" : 5, "roll" : 55, "name" : "shiv", "class" : "MCA" }

以下是我的data-config.xml文件,请告诉我是否有任何错误:
    <dataConfig>
     <dataSource name="MyMongo" type="MongoDataSource" database="sachin" />
     <document name="Products">
         <entity processor="MongoEntityProcessor"
                 query="{'Active':1}"
                 collection="stud"
                 datasource="MyMongo"
                 transformer="MongoMapperTransformer" >
             <field column="_id"           name="_id"       mongoField="_id"/>
             <field column="roll"     name="roll" mongoField="roll"/>
             <field column="name"           name="name"  />
        <field column="class"           name="class"  />

         </entity>
     </document>
 </dataConfig>

我的数据库名称是'sachin'。

我对如何定义schema.xml文件以及应该根据我的数据库模式修改它的内容感到困惑。以下是我在schema.xml中做出的更改:

 <uniqueKey>_id</uniqueKey>
         <schema name="MongoEX" version="1.1">
        <fields>

         <field name="_id" type="string" indexed="true" stored="true"  />
         <field name="roll" type="sint" indexed="true" stored="true"  />
         <field name="name" type="string" indexed="true" stored="true"  />
         <field name="class" type="string" indexed="true" stored="true" />
       </fields>

我在solrconfig.xml文件中所做的更改如下:

 <lib dir="../../../../dist/" regex="solr-dataimporthandler-.*\.jar" />
    <lib dir="../../../dist/" regex="mongo-2.10.1.jar" />
    <lib path="../../../dist/mongo-connector-1.1.1.jar"/>
    <lib path="../../../dist/solr-dataimporthandler-4.4.0.jar"/> 

    <requestHandler name="/sqldataimport"
        class="org.apache.solr.handler.dataimport.DataImportHandler">
        <lst name="defaults">
          <str name="config">/home/ubuntucomp/Music/solr-4.4.0/example/example-DIH/solr/MongoEX   /conf/data-config.xml</str>
        </lst>
      </requestHandler>

请告诉我以上所有文件中的任何错误,以便我可以索引mongodb。

提前感谢您。


你尝试过什么?你必须将MongoDB数据写入Solr XML文件,然后对Solr本身进行soft_commit或full commit。这实际上非常简单,并且适用于所有数据库。 - Sammaye
请查看设置Solr4数据导入处理程序 - Allan Macmillan
@Sammaye,你能再解释一遍吗?因为我也遇到了同样的问题。 - Prashant Thorat
@PrashantThorat,你知道Solr只能使用XML文件吗?没有任何复制步骤可以自动发送数据到Solr,必须手动完成,但是,似乎有人已经解决了这个问题:https://dev59.com/KVbTa4cB1Zd3GeqP8jV2 - Sammaye
我在哪里可以找到/获取mongo-connector-1.1.1.jar?它能快速处理包含1000万文档的mongo集合吗?还有@Sammaye - 你是如何在solr中索引大型mongo集合的? - The Bndr
如果还有人在寻找一种快速将Mongo DB索引到Solr的方法:我找到了这个简单但对我有用的链接:https://github.com/5missions/mongoSolrImporter - The Bndr
2个回答

1


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