主要設定項目
1. Luceneバージョン指定 (luceneMatchVersion)
<luceneMatchVersion>4.10.4</luceneMatchVersion>
Solrが使用するLuceneのバージョンを指定します。バージョン変更時は既存インデックスの再構築が必須です。
2. 拡張JAR設定 (lib)
外部ライブラリを追加する手順:
- JARファイルを所定ディレクトリに配置
- solrconfig.xmlでパスを設定
<lib dir="${solr.install.dir:../../../..}/lib" regex=".*\.jar" />
3. インデックスデータパス (dataDir)
<dataDir>${solr.data.dir:}</dataDir>
インデックスファイルとトランザクションログの保存先。マルチコア環境ではデフォルト設定推奨。
4. ストレージファクトリ (directoryFactory)
<directoryFactory name="StorageFactory"
class="${solr.directoryFactory:solr.NRTCachingDirectoryFactory}">
主要実装: - NRTCachingDirectoryFactory: 近リアルタイム検索向け(デフォルト) - MMapDirectoryFactory: 高パフォーマンス - RAMDirectoryFactory: 非永続(再起動でデータ消失)
5. コーデックファクトリ (codecFactory)
<codecFactory class="solr.SchemaCodecFactory"/>
DocValuesフォーマットを制御: - Lucene42: メモリ使用(デフォルト) - Disk: ディスク使用 - SimpleText: テスト用
6. インデックス設定 (indexConfig)
<indexConfig>
<writeLockTimeout>1000</writeLockTimeout>
<maxIndexingThreads>8</maxIndexingThreads>
<ramBufferSizeMB>100</ramBufferSizeMB>
</indexConfig>
主なパラメータ: - ramBufferSizeMB: ディスクフラッシュ前のメモリバッファ - mergePolicyFactory: セグメント統合戦略 - lockType: インデックスロック方式(デフォルトnative)
7. 更新ハンドラ (updateHandler)
<updateHandler class="solr.DirectUpdateHandler2">
<updateLog>
<str name="dir">${solr.ulog.dir:}</str>
</updateLog>
</updateHandler>
7.1 自動コミット (autoCommit)
<autoCommit>
<maxTime>15000</maxTime>
<openSearcher>true</openSearcher>
</autoCommit>
ハードコミット:ディスク永続化と検索可能化を実行
7.2 ソフトコミット (autoSoftCommit)
<autoSoftCommit>
<maxTime>-1</maxTime>
</autoSoftCommit>
検索可能化のみ実行(データ永続化なし)
8. クエリ設定 (query)
8.1 キャッシュ設定
<filterCache class="solr.FastLRUCache" size="512"/>
<queryResultCache class="solr.LRUCache" size="512"/>
主要キャッシュ: - filterCache: フィルタクエリ結果 - queryResultCache: クエリ結果
8.2 検索エンジン設定
<listener event="newSearcher" class="solr.QuerySenderListener"/>
<maxWarmingSearchers>2</maxWarmingSearchers>
検索エンジンの初期化動作と並列処理数を制御
9. リクエスト処理 (requestDispatcher)
9.1 リクエストパーサー
<requestParsers
multipartUploadLimitInKB="2048000"
formdataUploadLimitInKB="20480"/>
9.2 HTTPキャッシュ
<httpCaching never304="true">
<cacheControl>max-age=30, public</cacheControl>
</httpCaching>
10. リクエストハンドラ (requestHandler)
10.1 検索ハンドラ (/select)
<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
<int name="rows">10</int>
</lst>
</requestHandler>
10.2 更新ハンドラ (/update)
<requestHandler name="/update" class="solr.UpdateRequestHandler"/>
XML/JSON/CSV形式でのインデックス更新を処理
10.3 リアルタイム取得 (/get)
<requestHandler name="/get" class="solr.RealTimeGetHandler"/>
コミットなしで最新ドキュメントを取得