【发布时间】:2013-08-21 06:00:10
【问题描述】:
我是solr 和mongodb 的新用户。我在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 集合?