用json更新solr的原因';解析json字段时出错。意外对象启动';

用json更新solr的原因';解析json字段时出错。意外对象启动';,json,solr,Json,Solr,我下载了solr 4.6.1,并试图通过命令行使用以下命令更新solr索引: curl http://localhost:8983/solr/update?commit=true -H 'Content-type:application/json' -d ' [{ "id" : "1", "phoneNumber_ss": [{"foo_ss" : "bar"}] }] ' 我使用的是示例schema.xml,这就是我使用所有“\u ss”字段的原因 问题是,当我执行此命令时,我会得到

我下载了solr 4.6.1,并试图通过命令行使用以下命令更新solr索引:

curl http://localhost:8983/solr/update?commit=true -H 'Content-type:application/json' -d '
[{
  "id" : "1",
  "phoneNumber_ss": [{"foo_ss" : "bar"}]
}]
'
我使用的是示例schema.xml,这就是我使用所有“\u ss”字段的原因

问题是,当我执行此命令时,我会得到以下响应:

{"responseHeader":{"status":400,"QTime":1},"error":{"msg":"Error parsing JSON field value. Unexpected OBJECT_START","code":400}}
这似乎与为phoneNumber_ss字段指定的值有关,该字段是一个对象数组。如果我将值放入一个数组或一个对象中,它工作正常,只有当它是一个对象数组时才会出现问题


非常感谢您的帮助。

我认为Solr不支持将对象存储到多值字段中。可以将其存储为字符串数组。您还可以将对象存储为字符串,并在应用程序中对其进行解析

如果您有这样的用例,您只想拥有Solr中的所有对象,那么您可以按照以下步骤操作

  • 为键创建多值字段
  • 保持键的相同顺序,并为值创建另一个多值字段
  • 因此,您可以在不同的字段中以相同的顺序获取键和值。但在这种方法中,在更新这些多值字段时可能会遇到问题。你可能想看看

    最后,update语句中还缺少一些语法

    设置
    –设置或替换特定值,如果将null指定为新值,则删除该值

    添加
    –向列表中添加附加值


    检查一下,我认为Solr不支持将对象存储到多值字段中。可以将其存储为字符串数组。您还可以将对象存储为字符串,并在应用程序中对其进行解析

    如果您有这样的用例,您只想拥有Solr中的所有对象,那么您可以按照以下步骤操作

  • 为键创建多值字段
  • 保持键的相同顺序,并为值创建另一个多值字段
  • 因此,您可以在不同的字段中以相同的顺序获取键和值。但在这种方法中,在更新这些多值字段时可能会遇到问题。你可能想看看

    最后,update语句中还缺少一些语法

    设置
    –设置或替换特定值,如果将null指定为新值,则删除该值

    添加
    –向列表中添加附加值

    选中“/p>您链接的wiki页面上建议的“/update”。我将研究如何分解我的对象并以不同的方式存储它。谢谢“/更新”是您链接的wiki页面上建议的内容。我将研究如何分解我的对象并以不同的方式存储它。谢谢