テーブルの複数のフィールドに動的にインデックスを付ける必要がありました。最初は、フィールド名を「_t」と読んでうまくいきませんでした。好奇心から、トランスフォーマー宣言をエンティティーに追加しました。これにより、必要なフィールドのリストが得られました。
一度も使用されていない変圧器を追加すると問題が解決したのはなぜですか? トランスフォーマー宣言を削除すると、問題が再発し、どのトランスフォーマーを宣言しても問題ありません。
私は Solr 4.1 を実行しています。この問題は、ダウンロードに含まれている example-DIH の例で最初に発生しました。4.0 の Solr リファレンス ガイドを読みましたが、トランスフォーマーを追加すると機能する理由がわかりませんでした。
以下は db-data-config.xml ファイルです。
<dataConfig>
<dataSource name="foo" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/foo" user="fakeadmin" password="fakepass"/>
<document>
<entity name="products" query="select * from `product`">
<field name="id" column="id" />
<entity name="names" query="select * from names where productId = '${products.id}'" transformer="LogTransformer">
<field name="${names.fieldName}_t" column="fieldValue"/>
</entity>
</entity>
</document>