【问题标题】:Solr schema with nested object具有嵌套对象的 Solr 模式
【发布时间】:2016-04-18 18:21:25
【问题描述】:

我在单个实例中使用 solr 5.5 版本。我正在尝试将以下数据索引为一条记录:

{
  "MLId": "00021BF6-BCC7-4F2E-8B8F-02587310A1B4",
  "PublishDate": "2015-06-03",
  "CompanyName": "GLI Finance Limited",
  "Ticker": "GLI",
  "Primary": "1",
  "Exchange": "Channel Islands Securities Exchange",
  "Line1": "Sarnia House",
  "Line2": "Le Truchot",
  "Line3": "St Peter Port",
  "Line4": "Guernsey GY1 4NA",
  "Line5": "Channel Islands",
  "Country": "GBR",
  "Phone": "",
  "WebAddress": "http://www.glifund.com",
  "NoOfEmployees": "",
  "Turnover": "580000",
  "TurnoverUSD": "992600.0000",
  "FinancialYearEnd": "--12--",
  "overView": "GLI Finance is a closed-ended investment company. It invests in senior secured loans and syndicated corporate loans issued primarily by middle market US companies. Its portfolio investment is managed by T2 Advisers. The company operates in the Channel Islands, the UK and the Cayman Islands. It is headquartered in St. Peter Port, Guernsey.|The company recorded revenues of £584.4 thousand (approximately $963.1 thousand) in the fiscal year ended December 2014. Its net loss was £13,626.4 thousand (approximately $22,457.6 thousand) in fiscal 2014.|",
  "MajorProductsServices": "GLI Finance is a closed-ended investment company. The company's key activities include the following: Activities: Invests in senior secured loans and syndicated corporate loans issued primarily by middle market US companies",
  "KeyEmployeesCount": "8",
  "_childDocuments_": [
    {
      "FullName": "Geoffrey Richard Miller",
      "JobTitle": "Chief Executive Officer and Executive Director",
      "Board": "Executive Board"
    },
    {
      "FullName": "Emma Stubbs",
      "JobTitle": "Chief Financial Officer",
      "Board": "Executive Board"
    },
    {
      "FullName": "Patrick Anthony Seymour Firth",
      "JobTitle": "Chairman",
      "Board": "Non Executive Board"
    },
    {
      "FullName": "Frederick Peter Forni",
      "JobTitle": "Non-Executive Director",
      "Board": "Non Executive Board"
    },
    {
      "FullName": "James Henry Carthew",
      "JobTitle": "Non-Executive Director",
      "Board": "Non Executive Board"
    },
    {
      "FullName": "Marc Krombach",
      "JobTitle": "Managing Director",
      "Board": "Senior Management"
    },
    {
      "FullName": "Andrew Whelan",
      "JobTitle": "Director, Lending",
      "Board": "Senior Management"
    },
    {
      "FullName": "Louise Beaumont",
      "JobTitle": "Head, Public Affairs and Marketing",
      "Board": "Senior Management"
    }
  ],
  "LocationsSubsidiariesCount": "5",
  "Subsidiary": [
    {
      "SubsidiaryName": "GLIF BMS Holdings Limited",
      "SubsidiaryAddressLine1": "",
      "SubsidiaryAddressLine2": "",
      "SubsidiaryAddressLine3": "",
      "SubsidiaryAddressLine4": "",
      "SubsidiaryAddressLine5": "",
      "SubsidiaryAddressCountry": "GBR"
    },
    {
      "SubsidiaryName": "Secured Loan Investments Limited",
      "SubsidiaryAddressLine1": "",
      "SubsidiaryAddressLine2": "",
      "SubsidiaryAddressLine3": "",
      "SubsidiaryAddressLine4": "",
      "SubsidiaryAddressLine5": "Guernsey",
      "SubsidiaryAddressCountry": "GBR"
    },
    {
      "SubsidiaryName": "BMS Finance AB Limited",
      "SubsidiaryAddressLine1": "",
      "SubsidiaryAddressLine2": "",
      "SubsidiaryAddressLine3": "",
      "SubsidiaryAddressLine4": "",
      "SubsidiaryAddressLine5": "",
      "SubsidiaryAddressCountry": "GBR"
    },
    {
      "SubsidiaryName": "NVF Tech Limited",
      "SubsidiaryAddressLine1": "",
      "SubsidiaryAddressLine2": "",
      "SubsidiaryAddressLine3": "",
      "SubsidiaryAddressLine4": "",
      "SubsidiaryAddressLine5": "",
      "SubsidiaryAddressCountry": "GBR"
    },
    {
      "SubsidiaryName": "GLI Investments Holdings Sarl",
      "SubsidiaryAddressLine1": "",
      "SubsidiaryAddressLine2": "",
      "SubsidiaryAddressLine3": "",
      "SubsidiaryAddressLine4": "",
      "SubsidiaryAddressLine5": "",
      "SubsidiaryAddressCountry": "LUX"
    }
  ]
}

我收到未知命令 MLID 错误:

您能帮我创建索引吗?

谢谢, 斯里鲁

【问题讨论】:

  • 我定义的架构如下:
  • 您可能没有在 schema.xml 中添加 MLID?

标签: solr


【解决方案1】:

简短的回答:将 [] 放在整个结构周围,它应该可以工作。

长答案:Solr 接受 3 different forms 中的 JSON:

  1. Solr 对内部字段进行智能映射的单个任意 JSON 文档,根据需要(使用无模式)方法创建它们。其请求处理程序是 */update/json/docs" 这可行,但不支持子项,并且还将所有新字段映射到多值类型。
  2. Solr 期望的单个任意 JSON 文档是一系列命令,例如 adddeletecommit。这是特定于 Solr 的格式,并且支持子文档。对此的请求是“/update”
  3. 上述多文档快捷方式,其中仅以数组形式提供文档,包括儿童抚养费。

您在这里遇到了用例 2,因此 Solr 抱怨它看到的第一件事不是已知命令之一。通过将对象放入数组中,您切换到类型 3,它应该可以工作。

附:您的具体示例似乎有其他嵌套对象数组,它们可能会停止索引(特别是“子公司”)。但这是一个单独的问题/问题。

【讨论】:

  • 嗨,亚历克斯,感谢您的回复。我添加了 add 和 doc 关键字。但它给出了 "msg": "[doc=null] missing required field: id", "code": 400 错误。请指导为此对象定义架构并为数据编制索引。
  • 您的 schema.xml 或 managed-schema 有一个 uniqueKey 部分,说明它需要什么字段。在您的情况下,它可能是 id 但需要说 *MLId"
猜你喜欢
  • 2017-01-25
  • 2023-03-20
  • 2016-01-05
  • 2021-05-24
  • 1970-01-01
  • 2020-01-24
  • 1970-01-01
  • 1970-01-01
  • 2021-06-21
相关资源
最近更新 更多