如何将嵌套实体从DB导入Solr索引?出于某些原因,我不想将文档压缩成单个文档。我应该在schema.xml
和data-config.xml
写一下什么?我正在使用Solr 4.10 。
答案 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 = :查询,则会将所有记录相互混合。