将 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 作为字符串导入的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB,将对象数组更改为包含其 ObjectId 的字符串数组
带有 casbah 的 scala 案例类。接受 objectid 参数作为字符串或 objectid
在 mongodb 中删除所有 ObjectId 类型的文档作为 _id 字段