将 ObjectID 作为字符串导入

Posted

技术标签:

【中文标题】将 ObjectID 作为字符串导入【英文标题】:Importing ObjectID as string 【发布时间】:2018-01-03 00:42:11 【问题描述】:

我正在尝试使用 Solr 6.6 版将 Solr 6.2.1 单节点实例升级到 SolrCloud 设置。我面临的问题是,在使用 solr-mongo-importer-1.1.0.jar 和 mongo-java-driver-2.14.3.jar 从 mongodb 执行数据导入时,_id 字段被导入为"_id":"org.bson.types.ObjectId:585a53d109ed44343743ebd1" "_id":"585a53d109ed44343743ebd1" 与 Solr 6.2.1 实例中的一样。 (这两种情况下的罐子都是相同的版本)

架构包含以下内容(两个版本相同):

<fieldType name="string" class="solr.StrField"sortMissingLast="true"/>
<field name="_id" type="string" indexed="true" stored="true"/>

新版本的fieldType有什么变化还是我遗漏了什么?

【问题讨论】:

看看这个:github.com/mongodb-labs/mongo-connector/wiki/… 特别是这个部分:Solr 和 MongoDB 之间的唯一键 我们可以看看您的数据导入处理程序配置吗? 【参考方案1】:

Solr 字段应在 schema.xml 中声明。 可能id已经定义了!

或者,请尝试使用名称设置列属性 -

<field column="_id"  name="id"/>               
<field column="OtherNumber" name="OtherNumber" mongoField="OthNumber"/> 

尝试使用此指令指定 _id 字段

<uniqueKey> 

希望对你有帮助!

【讨论】:

不,id 尚未定义。此外,为 _id 字段指定了 uniqueKey。 您是否尝试设置“列”属性和“名称”?

以上是关于将 ObjectID 作为字符串导入的主要内容,如果未能解决你的问题,请参考以下文章

如何将自定义 ObjectId 添加到解析服务器对象?

MongoDB,将对象数组更改为包含其 ObjectId 的字符串数组

带有 casbah 的 scala 案例类。接受 objectid 参数作为字符串或 objectid

在 mongodb 中删除所有 ObjectId 类型的文档作为 _id 字段

Mongoose 在结果的 _id 字段中返回“new ObjectId”

Mongoose 拒绝将有效字符串转换为 ObjectId