1

将 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 获取数据?

4

1 回答 1

1

只要您的架构字段(例如 column1、column2)在不同实体之间兼容,您就可以运行 DataImportHandler,它将从两个查询中填充 Solr 集合。

然后,当您查询时,您将看到所有实体组合在一起。

如果您想标记哪个实体来自哪个来源,我建议添加另一个字段(例如类型)并使用 TemplateTransformer在每个实体定义中为其分配不同的静态值。

还要小心使用 clean 命令。默认情况下,它会从索引中删除所有内容。当您从多个来源填充索引时,您需要确保它不会删除太多。使用preImportDeleteQuery仅删除您为该实体设置的类型字段中具有相同值的条目。

于 2013-01-31T15:25:10.353 回答