リクエストディスパッチャー
solrconfig.xml
の requestDispatcher
要素は、Solr HTTP RequestDispatcher
実装がリクエストに応答する方法を制御します。
/select
URL を処理するかどうか(Solr 1.1との互換性のため)、リモートストリーミングをサポートするかどうか、ファイルアップロードの最大サイズ、リクエスト内の HTTP キャッシュヘッダーにどのように応答するかを定義するためのパラメータが含まれています。
handleSelect要素
|
最初に設定可能な項目は、<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 回目のフェッチを回避できますが、チェックを行うためにサーバーにリクエストする必要があります。