使用 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 文件。以下是我执行的步骤并出现以下错误:

  1. 在 Zookeeper 中创建了一个数据驱动的托管架构配置集。将唯一键更改为 "MyId"(字符串字段)而不是默认 ID。

<uniqueKey>MyId</uniqueKey>
        ...
<field name="MyId" type="string" indexed="true" stored="true" required="true" multiValued="false" />
  1. 创建了集合并关联了上述配置集(使用新的 Admin UI)。

  2. 使用 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)

  3. 在不更改唯一 ID 且仅使用默认 id(自动生成 UUID)字段的情况下,csv 加载正常。但我需要唯一 ID 为 MyId

我想知道为什么我的关键字段被报告为多值,我的 CSV 并不真正包含多值数据,它是简单的逗号分隔的数字和字符串字段。请提出可能出了什么问题。

注意:我也在架构中进行了此更改 (无济于事,因为问题出在输入数据上)

编辑:添加完整的异常跟踪

https://pastebin.com/raw/juRj7ZUi

我在文档 csv update params 中得到线索,问题与我传递的这个参数有关 (&rowid=MyId)。正如文档所述,我们应该传递此参数以将行号添加为 id。这就解释了为什么我的密钥 (MyId) 变成了一个多值的 ([我的实际密钥,行号])。但是,如果我删除此参数,则会出现 id 未被填充的错误。这意味着它需要一个 id 字段。所以添加 &literal.id=1,现在一切正常(这是因为在我的模式中有必需的 id 字段。)。感谢您的帮助。