solr DIHデルタインポートのpkとは何ですか? solr で複数のフィールドのデルタ インデックスを作成しようとしていますか?
3 に答える
schema.xml ファイルで id フィールドとして指定したフィールドは何でもよいと思います。
問題は、子エンティティのデルタクエリにあると思います。あなたが与えた、
deltaQuery="select id from cc_gadget_lang where '${cc_gadget.last_modified_date}' > '${dataimporter.last_index_time}'"
上記のクエリの where 条件は常に TRUE に検証されると思いますが、それを行う特定の目的はありません。
私が提案する解決策は、データベースの「cc_gadget_lang」テーブルに別の「last_modified_date」フィールドを用意し、それを子エンティティのデルタ クエリで使用することです。
また、スキーマ ファイルに子エンティティの "pk" を含める必要はないと考えています。これは、デルタ インポート中に一時的に格納および使用され、Index に永続的に格納する必要がないためです。
そのレコードの一意のキーとなる Solr フィールドの名前です。その Solr 列へのソースのマッピングを定義すると、マッピング後、Solr は指定した pk フィールドに基づいてその存在と値をチェックします。
primaryKey を生成している可能性があるか、何らかの理由で適切でない可能性があるため、primaryKey とは異なります。しかし、それは同じかもしれません。Wiki の最も明確な説明は、 HttpDataSource の例にあると思います。
内部ソース エントリを 1 つの Solr エントリにフラット化するときに、複合 pk を定義することもできると思います。