Solr嵌套对象分析错误

时间:2017-04-09 12:54:10

标签: solr schema solr4 solrcloud

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

示例: -

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

manage-schema文件

<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获取数据并尝试转换为我的类对象时,它会给我解析错误no value for key fName

请帮忙 感谢

1 个答案:

答案 0 :(得分:0)

在Solr中建模/查询嵌套对象有两种主要的可能方法: 加入索引时间

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

  • 非常快

查询时间加入

  • 您不需要遵循任何特定的索引策略,eveything将在查询时发生。
  • '慢'

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

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