1

SqlEntityProcessorでDataImportHandlerを使用する場合、異なるクエリを使用して同じスキーマに複数の定義を含める必要があります。

両方のタイプのエンティティを検索するだけでなく、それらのソースを同時に区別するにはどうすればよいですか。例:

<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 に答える