リクエストディスパッチャー

solrconfig.xmlrequestDispatcher 要素は、Solr HTTP RequestDispatcher 実装がリクエストに応答する方法を制御します。

/select URL を処理するかどうか(Solr 1.1との互換性のため)、リモートストリーミングをサポートするかどうか、ファイルアップロードの最大サイズ、リクエスト内の HTTP キャッシュヘッダーにどのように応答するかを定義するためのパラメータが含まれています。

handleSelect要素

handleSelect は、従来のバージョンとの後方互換性のためのものです。Solr を初めて使用する場合は、デフォルトの設定を変更する必要はありません。

最初に設定可能な項目は、<requestDispatcher> 要素自体の handleSelect 属性です。この属性は、「true」または「false」のいずれかの値に設定できます。 /select?qt=XXX などのリクエストに Solr がどのように応答するかを制御します。デフォルト値の「false」は、/select という名前のリクエストハンドラが明示的に登録されていない場合、/select へのリクエストを無視します。「true」の値は、/select という名前のリクエストハンドラが明示的に登録されていない場合、qt 値で定義されたパーサーにクエリリクエストをルーティングします。

最近のバージョンの Solr では、/select リクエストハンドラがデフォルトで定義されているため、「false」の値で問題なく動作します。詳細については、リクエストハンドラと検索コンポーネントのセクションを参照してください。

<requestDispatcher handleSelect="true" >
  ...
</requestDispatcher>

requestParsers要素

<requestParsers> サブ要素は、リクエストの解析に関連する値を制御します。これは、コンテンツを持たない空の XML 要素で、属性のみを持ちます。

multipartUploadLimitInKB

オプション

デフォルト: -1

この属性は、マルチパート HTTP POST リクエストで送信できるドキュメントのサイズの上限をキロバイト単位で設定します。指定された値に 1024 を掛けてバイト単位のサイズを決定します。値 -1 は MAX_INT を意味し、省略した場合のシステムデフォルトでもあります。

formdataUploadLimitInKB

オプション

デフォルト: -1

この属性は、HTTP POST リクエストで送信されるフォームデータ(application/x-www-form-urlencoded)のサイズの上限をキロバイト単位で設定します。これは、URL に収まらないリクエストパラメータを渡すために使用できます。値 -1 は MAX_INT を意味し、省略した場合のシステムデフォルトでもあります。

addHttpRequestToContext

オプション

デフォルト:なし

この属性は、元の HttpServletRequest オブジェクトをキー httpRequest を使用して SolrQueryRequest のコンテキストマップに含める必要があることを示すために使用できます。この HttpServletRequest は Solr コンポーネントでは使用されませんが、カスタムプラグインを開発する際に役立つ場合があります。

<requestParsers multipartUploadLimitInKB="2048"
                formdataUploadLimitInKB="2048"
                addHttpRequestToContext="false" />

httpCaching 要素

<httpCaching> 要素は、HTTP キャッシュ制御ヘッダーを制御します。これらの設定を Solr の内部キャッシュ構成と混同しないでください。この要素は、W3C HTTP 仕様で定義されている HTTP レスポンスのキャッシュを制御します。

この要素は、3 つの属性と 1 つのサブ要素を許可します。<httpCaching> 要素の属性は、GET リクエストに対する 304 レスポンスが許可されるかどうか、および許可される場合はどのような種類のレスポンスにするかを制御します。HTTP クライアントアプリケーションが GET を発行する場合、リソースが最後に取得されてから変更されていない場合、304 レスポンスを受け入れることをオプションで指定できます。

never304

オプション

デフォルト:なし

true を指定すると、要求されたリソースが変更されていない場合でも、GET リクエストは 304 コードで応答しません。この属性が true に設定されている場合、次の 2 つの属性は無視されます。これを true に設定すると、Web ブラウザやキャッシュヘッダーをサポートする他のクライアントを介して Solr レスポンスを操作する場合に 304 レスポンスが混乱を招く可能性があるため、開発に便利です。

lastModFrom

オプション

デフォルト:openTime

この属性は、openTime または dirLastMod に設定できます。

openTime は、クライアントによって送信された If-Modified-Since ヘッダーと比較した最終変更時刻が、Searcher が開始された時刻を基準にして計算されることを示します。

時刻がディスク上のインデックスの最終更新時刻と正確に一致するようにするには、dirLastMod を使用します。

etagSeed

オプション

デフォルト:なし

この属性の値は、ETag ヘッダーの値として送信されます。この値を変更すると、インデックスが変更されていない場合でも、クライアントにコンテンツを再フェッチさせるのに役立ちます。たとえば、構成にいくつかの変更を加えた場合などです。

<httpCaching never304="false"
             lastModFrom="openTime"
             etagSeed="Solr">
  <cacheControl>max-age=30, public</cacheControl>
</httpCaching>

cacheControl 要素

これらの属性に加えて、<httpCaching> は 1 つの子要素 <cacheControl> を受け入れます。この要素のコンテンツは、HTTP レスポンスの Cache-Control ヘッダーの値として送信されます。このヘッダーは、リクエスト元のクライアントのデフォルトのキャッシュ動作を変更するために使用されます。Cache-Control ヘッダーに使用可能な値は、セクション 14.9 の HTTP 1.1 仕様で定義されています。

max-age フィールドを設定すると、クライアントがキャッシュされたレスポンスを再利用できる期間を制御できます。サーバーに再度リクエストする必要があります。この時間間隔は、インデックスの更新頻度と、アプリケーションが多少古いコンテンツを使用することが許容されるかどうかによって設定する必要があります。must-revalidate を設定すると、クライアントは再利用する前に、キャッシュされたコピーがまだ有効であることをサーバーで検証するように指示されます。これにより、最新の kết quả が使用されるようになります。コンテンツが必要ない場合は 2 回目のフェッチを回避できますが、チェックを行うためにサーバーにリクエストする必要があります。