使用 CSV 更新 UI 的 Solr 索引:唯一键创建为多值字段错误
Solr Indexing using CSV Update UI: unique key is created as a multivalued fields errors out
我正在尝试使用 solr Admin UI 在 solr 6.5 集合中加载 CSV 文件。以下是我执行的步骤并出现以下错误:
- 在 Zookeeper 中创建了一个数据驱动的托管架构配置集。将唯一键更改为 "MyId"(字符串字段)而不是默认 ID。
<uniqueKey>MyId</uniqueKey>
...
<field name="MyId" type="string" indexed="true" stored="true" required="true" multiValued="false" />
创建了集合并关联了上述配置集(使用新的 Admin UI)。
使用 Admin UI 加载 CSV 文件(集合 --> 集合名称下拉菜单 --> 文档)。我添加了 &rowid=MyId
参数的请求处理程序参数。我的 CSV 文件中有 MyId
字段。在加载期间我收到此错误:
Document contains multiple values for uniqueKey field: MyId=[82552329, 1]
at org.apache.solr.update.AddUpdateCommand.getHashableId(AddUpdateCommand.java:168)
在不更改唯一 ID 且仅使用默认 id
(自动生成 UUID)字段的情况下,csv 加载正常。但我需要唯一 ID 为 MyId
我想知道为什么我的关键字段被报告为多值,我的 CSV 并不真正包含多值数据,它是简单的逗号分隔的数字和字符串字段。请提出可能出了什么问题。
注意:我也在架构中进行了此更改 (无济于事,因为问题出在输入数据上)
编辑:添加完整的异常跟踪
我在文档 csv update params 中得到线索,问题与我传递的这个参数有关 (&rowid=MyId
)。正如文档所述,我们应该传递此参数以将行号添加为 id。这就解释了为什么我的密钥 (MyId
) 变成了一个多值的 ([我的实际密钥,行号])。但是,如果我删除此参数,则会出现 id
未被填充的错误。这意味着它需要一个 id 字段。所以添加 &literal.id=1
,现在一切正常(这是因为在我的模式中有必需的 id
字段。)。感谢您的帮助。
我正在尝试使用 solr Admin UI 在 solr 6.5 集合中加载 CSV 文件。以下是我执行的步骤并出现以下错误:
- 在 Zookeeper 中创建了一个数据驱动的托管架构配置集。将唯一键更改为 "MyId"(字符串字段)而不是默认 ID。
<uniqueKey>MyId</uniqueKey>
...
<field name="MyId" type="string" indexed="true" stored="true" required="true" multiValued="false" />
创建了集合并关联了上述配置集(使用新的 Admin UI)。
使用 Admin UI 加载 CSV 文件(集合 --> 集合名称下拉菜单 --> 文档)。我添加了
&rowid=MyId
参数的请求处理程序参数。我的 CSV 文件中有MyId
字段。在加载期间我收到此错误:Document contains multiple values for uniqueKey field: MyId=[82552329, 1] at org.apache.solr.update.AddUpdateCommand.getHashableId(AddUpdateCommand.java:168)
在不更改唯一 ID 且仅使用默认
id
(自动生成 UUID)字段的情况下,csv 加载正常。但我需要唯一 ID 为MyId
我想知道为什么我的关键字段被报告为多值,我的 CSV 并不真正包含多值数据,它是简单的逗号分隔的数字和字符串字段。请提出可能出了什么问题。
注意:我也在架构中进行了此更改
编辑:添加完整的异常跟踪
我在文档 csv update params 中得到线索,问题与我传递的这个参数有关 (&rowid=MyId
)。正如文档所述,我们应该传递此参数以将行号添加为 id。这就解释了为什么我的密钥 (MyId
) 变成了一个多值的 ([我的实际密钥,行号])。但是,如果我删除此参数,则会出现 id
未被填充的错误。这意味着它需要一个 id 字段。所以添加 &literal.id=1
,现在一切正常(这是因为在我的模式中有必需的 id
字段。)。感谢您的帮助。