如何在solr的schema.xml中定义层次结构字段?

时间:2014-10-13 19:08:40

标签: solr lucene solrcloud

我gooled并搜索标题,返回了很多关于如何为层次结构/嵌套字段创建QUERY的结果,但没有明确的答案如何在schema.xml中定义它。

让我非常具体,说我有以下格式的json记录(非常简化的版本):
  
     办公室字符串
         城市字符串
         邮政编码字符串
     家庭
         城市字符串
         邮政编码字符串
     城市字符串
  

如果我只想索引/存储home.city,那么我将如何在schema.xml的“字段”中定义它?

2 个答案:

答案 0 :(得分:0)

模式必须是所有字段的并集,因为一个集合只有一个包含所有内容的真实定义。

所以:城市 zipcode ,可能类型来区分。加上Solr对父母/子女关系管理的要求( id _root _ _version _ )。

如果字段不同,则需要确保仅在一种类型而非另一种类型中发生的字段是可选的。

假设您将子记录编入索引为单独的文档。如果要将它们全部合并到一个父文档中,则需要在客户端上对内容进行折叠。 ElasticSearch为您提供了更好的界面,但是 - 在封面下 - 单个真实定义的问题仍然是相同的(它们来自Lucene,两者都使用)。

答案 1 :(得分:0)

Solr不支持嵌套字段。如果您正在寻找 具有上述功能的搜索引擎,您可以尝试弹性搜索。弹性搜索还有其核心,它提供了比solr提供的更多功能,就可扩展性,全文搜索功能,自动分片,轻松导入数据导出而言。