コンテンツストリーム
コンテンツストリームとは、Solr へのリクエストとともに渡されるバルクデータのことです。
パスベースの URL を使用して Solr RequestHandler にアクセスすると、リクエストのパラメータを含む SolrQueryRequest
オブジェクトには、リクエストのバルクデータを含む ContentStream のリストも含まれる場合があります。(SolrQueryRequest という名前は少し誤解を招きやすいかもしれません。クエリリクエストであろうと更新リクエストであろうと、すべてのリクエストに関与します。)
コンテンツストリームのソース
現在、リクエストハンドラはさまざまな方法でコンテンツストリームを取得できます。
-
マルチパートファイルアップロードの場合、各ファイルはストリームとして渡されます。
-
content-type が
application/x-www-form-urlencoded
ではない POST リクエストの場合、生の POST ボディはストリームとして渡されます。POST ボディ全体がパラメータとして解析され、Solr パラメータに含まれます。 -
パラメータ
stream.body
の内容は、ストリームとして渡されます。SOLR_ENABLE_STREAM_BODY=true
が必要です。 -
各
stream.url
およびstream.file
パラメータは、解決/取得され、ストリームとして渡されます。SOLR_ENABLE_REMOTE_STREAMING=true
が必要です。
デフォルトでは、curl は contentType="application/x-www-form-urlencoded"
ヘッダーを送信します。SolrContentHeader コンテンツストリームをテストする必要がある場合は、curl の -H
フラグでコンテンツタイプを設定する必要があります。
リモートストリーミング
リモートストリーミングを使用すると、URL の内容をストリームとして特定の Solr RequestHandler に送信できます。リモートストリーミングを使用して、リモートファイルまたはローカルファイルを更新プラグインに送信できます。
リモートストリーミングはデフォルトで無効になっています。信頼できないリモートクライアントとの間にセキュリティを追加せずに、本番環境で有効にすることはお勧めしません。
リモートストリーミングを使用する場合、これにより誰でも任意の URL またはローカルファイルにリクエストを送信できることに注意してください。また、DumpRequestHandler を使用すると、誰でも Solr がアクセスできるものを表示できます。 |
この環境変数を使用して有効にします。SOLR_ENABLE_REMOTE_STREAMING=true
データのソースは gzip を使用して圧縮でき、Solr は通常これを検出します。検出は、Content-Encoding: gzip
HTTP ヘッダーの存在、またはファイルが .gz または .gzip で終わるかどうかに基づきます。Gzip は stream.body
には適用されません。
リクエストのデバッグ
暗黙の "dump" RequestHandler (「暗黙のリクエストハンドラ」を参照) は、指定されたライタータイプ wt
を使用して、Solr QueryRequest の内容を出力するだけです。これは、RequestHandlers で利用可能なストリームを理解するのに役立つ便利なツールです。