将DataImportHandler与SqlEntityProcessor一起使用时,我希望将几个定义放入具有不同查询的同一模式中。
如何搜索这两种类型的实体,同时也能同时区分它们的来源。例如:
<document>
<entity name="entity1" query="query1">
<field column="column1" name="column1" />
<field column="column2" name="column2" />
</entity>
<entity name="entity2" query="query2">
<field column="column1" name="column1" />
<field column="column2" name="column2" />
</entity>
</document>
如何从实体1和实体2获取数据?
答案 0 :(得分:1)
只要您的架构字段(例如column1,column2)在不同实体之间兼容,您就可以运行DataImportHandler,它将从两个查询中填充Solr集合。
然后,当您查询时,您将看到所有实体合并。
如果您想标记哪个实体来自哪个来源,我建议您添加另一个字段(例如类型),并在每个实体定义using TemplateTransformer中为其指定不同的静态值。
还要注意使用clean命令。默认情况下,它会从索引中删除所有内容。当您从多个来源填充索引时,您需要确保它不会删除太多。使用preImportDeleteQuery仅删除为该实体设置的类型字段中具有相同值的条目。