0

我正在使用 CSVupdateHandler 将 CSV 文件索引到 Solr。我的 Csv 文件在每一行中都有可变数量的字段(例如,第一行 4 个字段,第 2 行中的 6 个字段,依此类推……)。

      line1:field1,field2,field3,field4 
      line2:field1,field2,field3,field4,field5,field6
      line3:field1,field2,field3,field4 

那么有没有办法指定字段名的变量号?如果有四个字段,我想要它做的是索引 4 列,如果有六个则索引 6。任何其他实现这一目标的替代方法也受到赞赏:) 谢谢!

更新 :

let me describe the situation ....

我有一个包含 CSV 数据的文件,如上所示。我使用 fieldnames 参数来指定 Solr 必须使用的字段名称。因为我的文件中的每一行都没有设置数量的 CSValue,所以我不能为此文件设置标准标题,而不必用空值填充一些行。例如。当我上传上面定义了 6 个标题字段的文件时,第 1 行和第 3 行会抛出一个错误,如果我使用 4 个标题字段第 2 行会抛出一个错误.. 我想知道是否有办法指定标题字段,以便上述条件有效...或者我是否必须将我的文件转换为具有填充虚拟值的等长字段?

4

2 回答 2

0

解决了这个问题:在 schema.xml 中指定具有默认值的自定义字段。考虑到某些行中的额外两个字段!提供的 schema.xml 有很多例子!

ALTERNATE:您还可以定义自定义 updateRequestProcessor 并使用 java 根据条件添加字段。并将此处理器指定为请求处理程序中更新处理器链的一部分。

于 2013-01-29T09:29:08.747 回答
0

您希望第 5 列和第 6 列映射到什么?您需要以一种或另一种方式让 Solr 知道吗?在这种情况下,您只需为丢失的项目做空昏迷。

另一方面,如果您尝试在单个字段中提供多值,那么您可能应该将字段分隔符设置为其他值,并将逗号作为值分隔符。

试着想一想你希望 Solr 看到什么,然后反过来工作。

于 2013-01-25T19:22:16.570 回答