Solr Json使用Curl放置Json文档

时间:2016-07-29 06:38:56

标签: json curl solr

我正在尝试使用

将一个json文档放入solr核心
curl -X POST -H 'Content-Type: application/json' 'http://xxxx:6083/solr/daw_index/update?commit=true' -d'
{
"add":{
"doc":{
  "dataSet_s": "ORACLE",
  "ruleType_s": "IF_EQUALS_THEN_EQUALS",
  "enable_s": "true",
  "testCaseId_s": "CASE_2",
  "condition": {
    "conClause": "ESLEE",
    "conField": "ENGINE_RPM",
    "conOperator1": "GREATER",
    "conVal1": "5000",
    "conVal2": ""
  }
}
}
}

'

只有前四个字段在核心中添加为文档

{
        "dataSet_s": "ORACLE",
        "ruleType_s": "IF_EQUALS_THEN_EQUALS",
        "enable_s": "true",
        "testCaseId_s": "CASE_2",
        "id": "9da24b8f-5766-4b72-b47b-4fea52490563",
        "_version_": 1541169726491721700
      }

我需要使用条件对象添加整个doc。 另外我们如何在solr中添加json对象数组

1 个答案:

答案 0 :(得分:0)

您正在使用Solr Update JSON格式,但未正确指定子文档。他们需要object structures within an array mapped to a key called childDocuments

你总是有一个架构。如果你运行

bin/solr create_core -h

您将看到有关实际发生情况的更多说明,包括您未自行指定的配置名称(Solr 6.1中的data_driven_schema_configs)。

您可以在管理界面的文件屏幕中看到您的实时配置。查找模式文件的 managed-schema 文件。在您的情况下,它使用后缀指定动态字段以指定正确的类型one of which is *_s以及您的发布工作的原因。如果您将子记录用于字段没有与动态字段定义匹配的扩展名,则您将触发"无模式"模式将根据solrconfig.xml中指定的规则猜测文件,并将显式添加到模式。这将触发重新创建托管架构文件(动态字段不会)。