在SOLR中创建嵌套文档的索引

时间:2014-12-01 09:39:30

标签: solr

如何将嵌套实体从DB导入Solr索引?出于某些原因,我不想将文档压缩成单个文档。我应该在schema.xmldata-config.xml写一下什么?我正在使用Solr 4.10

2 个答案:

答案 0 :(得分:2)

当前分发的DataImportHandler版本不支持嵌套文档(或者在Solr / Lucene中调用BlockJoins)。

however a patch available that you can try out - 请务必按照JIRA(SOLR-5147)关于如何使用它的讨论以及未来的发展方向进行讨论。

答案 1 :(得分:2)

由于您无法使用DataImportHandler,因此您可以编写自定义代码来执行此操作。我建议使用SolrJ加载childDocuments。要处理childDocuments,首先必须在schema.xml中创建所有必需的字段(对于所有不同的记录类型)(或使用动态字段)。从那里,您可以为父项创建SolrInputDocument,为子项创建SolrInputDocument,然后在父SolrInputDocument上调用addChildDocument(doc)以将子项添加到它。

我还建议您创建一个字段,指明您所处的级别 - 例如" content_type"你用'#34; parent"填写或" root,"或任何适合你的东西。然后,一旦您加载了记录,就可以使用阻止/加入查询来分层搜索。请注意,这样做会为每条记录创建一个条目,如果您执行q = 查询,则会将所有记录相互混合。