Solr設定ファイル solrconfig.xml の詳細解説

主要設定項目

1. Luceneバージョン指定 (luceneMatchVersion)

<luceneMatchVersion>4.10.4</luceneMatchVersion>

Solrが使用するLuceneのバージョンを指定します。バージョン変更時は既存インデックスの再構築が必須です。

2. 拡張JAR設定 (lib)

外部ライブラリを追加する手順:

  1. JARファイルを所定ディレクトリに配置
  2. 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"/>

コミットなしで最新ドキュメントを取得

タグ: Solr lucene 設定 検索エンジン インデックス

5月21日 04:44 投稿