0

我正在尝试使用 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. 创建集合并关联上述配置集(使用新的管理 UI)。

  2. 使用管理 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 加载正常。但我需要唯一的 idMyId

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

注意:我也做了这个改变Solr Schemaless Mode在模式中创建字段作为 MultiValued (没有帮助,因为问题是输入数据)

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

https://pastebin.com/raw/juRj7ZUi

4

1 回答 1

1

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

于 2017-04-14T20:04:44.803 回答