Solr 嵌套对象解析错误

Solr nested Object Parse Error

我在 Solr 中有一个嵌套对象,我在管理模式文件中使用模式。 但是 Solr 以扁平方式存储嵌套对象。

示例:-

{ "id": 1234,
  "name":{
           "fname":"Random",
           "lastName":"Name"
          }
}

管理模式文件

<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<field name="name" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="name.fName" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="name.lastName" type="string" indexed="true" stored="true" required="true" multiValued="false" />

什么时候在 Solr 中插入示例数据时将数据存储为这样

{"id":1234,
"name.fName":"Random",
"name.lastName":"Name"
}

所以当我从 solr 获取数据并尝试转换为我的 class 对象时,它给我解析错误 no value for key fName

请帮忙 谢谢

在 Solr 的 modelling/querying 嵌套对象中有 2 种主要可能的方法: 索引时间加入

  • 暗示一个非常具体的索引策略,你必须索引整个块(子+父)

  • 相当快

查询时间加入

  • 您不需要遵循任何特定的索引策略,一切都会在查询时发生。
  • 'slow'

在这两种情况下,您不需要任何奇特的方式来命名架构中的字段(嵌套对象功能与字段命名无关)。

[1] https://cwiki.apache.org/confluence/display/solr/Uploading+Data+with+Index+Handlers#UploadingDatawithIndexHandlers-NestedChildDocuments