我在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
请帮忙 感谢
答案 0 :(得分:0)
在Solr中建模/查询嵌套对象有两种主要的可能方法: 加入索引时间
暗示一个非常具体的索引策略,您必须索引整个块(子+父)
非常快
查询时间加入
在这两种情况下,您不需要在模式中命名字段的任何奇特方式(嵌套对象功能与字段命名无关)。