2017-09-13 8 views
0

値 "test"のUpdateAttributeプロセッサを使用して、フローファイルに属性(solrCoreSuffix)を追加します。次に、私のPutSolrContentStreamプロセッサで、私はSolr Locationプロパティを "http://localhost:8983/solr/mycore- $ {solrCoreSuffix}"に設定しました。私は、Solrプロセッサが "http://localhost:8983/solr/mycore-test"に到達しようとしますが、ログに記載されているように、 "http://localhost:8983/solr/mycore-"にアクセスしようとします。Nifi:PutSolrContentStreamがELを評価しない

このフィールドには「サポート表現言語:true」があり、キュー内のフローファイルを検査するときに正しい値で属性を見ることができます。たとえば、PutFileのような他のプロセッサでこの属性を使用できます。動作。

私がここで間違っていることを私は見ていない、私は何かを逃したか?

答えて

2

Solr Locationフィールドは、表現言語をサポートしますが、フロー単位ではありません。

これは、プロセッサの起動時にSolrClient(SolrJから)を作成し、環境変数、変数レジストリなどに対してSolr Locationの値を評価していますが、この時点でフローファイルはありませんフローファイル属性を使用する時間。これにより、誰かがdev/qa/prodのような環境に基づいてSolr Locationを簡単に外部化することができます。

、入って来、これまで単一のフローファイルのためのSolrへの新しい接続を作成するために高価であるため、この方法では行われていた理由。

クラウドモードでは、コレクションには、Solrの場所の一部ではありません

https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/PutSolrContentStream.java#L178

https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-solr-bundle/nifi-solr-processors/src/main/java/org/apache/nifi/processors/solr/PutSolrContentStream.java#L203-L205

:CloudSolrClientはあなたが各操作にコレクションを指定することができますので、ダイナミックであります
関連する問題