【问题标题】:How to import and index mongodb data in solr 4如何在 solr 4 中导入和索引 mongodb 数据
【发布时间】:2013-08-21 06:00:10
【问题描述】:

我是solrmongodb 的新用户。我在mongodb 中创建了数据库和集合。

现在我想在solr 中导入mongodb 集合并为其编制索引,以用于将在数据库中搜索大量数据的应用程序。我在互联网上搜索了很多,但我没有得到满意的信息。谁能告诉如何通过步骤在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 或完全提交。这真的很简单,并且适用于所有数据库。
  • @Sammaye 你能再解释一下,因为我也面临同样的问题
  • @PrashantThorat 你知道 Solr 是如何只接收 XML 文件的吗?您无法采取任何复制步骤来自动将数据发送到 Solr,您必须手动完成,但是,似乎有人有:stackoverflow.com/questions/5659600/…
  • 在哪里可以找到/获取 mongo-connector-1.1.1.jar? ist 与 10+ 百万文档的 mongo Collections 一起工作是否快速?还有@Sammaye - 你如何在 solr 中索引大 mongo 集合?

标签: mongodb solr


【解决方案1】:

你提到query="{'Active':1}"在stud集合中没有字段名称为Active的文档

您可以按照Steps to connect MongoDB and Solr using DataImportHandler中提到的步骤进行操作

希望对您有所帮助。

【讨论】:

    【解决方案2】:
    猜你喜欢
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-11-29
    • 2013-10-16
    • 2015-09-16
    相关资源
    最近更新 更多