繁体   English   中英

具有嵌套对象的Solr模式

[英]Solr schema with nested object

我在单个实例中使用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错误:

您能帮我建立索引吗?

谢谢,斯里露

简短的答案:将[]放在整个结构周围,它应该起作用。

长答案:Solr接受3种不同形式的 JSON:

  1. Solr可以智能地映射到内部字段的单个任意JSON文档,并根据需要(使用无模式)创建它们。 该请求的处理程序为* / update / json / docs“。这有效,但不支持子级,并且还将所有新字段映射为multiValued类型。
  2. Solr期望它是一个命令序列,例如adddeletecommit的单个任意JSON文档。 这是Solr特定的格式,并且确实支持子文档。 该请求是“ / update”
  3. 上面一个文档的多文档快捷方式,其中仅以阵列形式提供文档,包括子支持。

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

Ps您的特定示例似乎还有其他嵌套对象数组,这些数组可能会停止索引编制(特别是“子公司”)。 但这是一个单独的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM