(※2019/7/1 修正 Fess 12.6.1 から 13.1.1 にアップデート)
2014年秋頃に Fess 9.2.0 という全文検索システムを使用していた。
その後、職場異動になり、しばらく Fess から遠ざかっていたのだが、たまたま PC が一つ空いたので、再び現在の職場で Fess 13.1.1 を試用することにした。
オープンソース全文検索サーバー Fess (フェス)
http://fess.codelibs.org/ja/
今回も目的は同じで社内のプライベート LAN につながっているテラバイト NAS 内の検索。トポロジー的にはこんな感じ。
├─┐
│ Fess 13.1.1
│ Windows 7 sp1 pro 64bit
│ HDD 500G
│ メモリ 24G
│ 172.20.10.10/16
│
├─┐
│ NAS
│ 数テラバイト
│ 172.20.10.100/16
│
├─┐
│ ユーザーPC
│ Windows 10 など
│ 172.20.*.*/16
│
というわけでセットアップなどを備忘録的に書いていく。
──────────────────────────────
Fess 13.1.1 のインストール
Windows7 の PC に 単純に fess-13.1.1.zip の中身をとりだして
そのまま配置した。(下位フォルダは省略。)
C:\fess\fess-13.1.1
├─app
├─bin
├─es
├─extension
├─lib
├─logs
├─temp
──────────────────────────────
JDK のインストール
jdk-11.0.4_windows-x64_bin.exe を JAVA の WEB サイトからダウンロードしてインストールした。
オープンソース全文検索サーバー Fess (フェス)
http://fess.codelibs.org/ja/
今回も目的は同じで社内のプライベート LAN につながっているテラバイト NAS 内の検索。トポロジー的にはこんな感じ。
├─┐
│ Fess 13.1.1
│ Windows 7 sp1 pro 64bit
│ HDD 500G
│ メモリ 24G
│ 172.20.10.10/16
│
├─┐
│ NAS
│ 数テラバイト
│ 172.20.10.100/16
│
├─┐
│ ユーザーPC
│ Windows 10 など
│ 172.20.*.*/16
│
というわけでセットアップなどを備忘録的に書いていく。
──────────────────────────────
Fess 13.1.1 のインストール
Windows7 の PC に 単純に fess-13.1.1.zip の中身をとりだして
そのまま配置した。(下位フォルダは省略。)
C:\fess\fess-13.1.1
├─app
├─bin
├─es
├─extension
├─lib
├─logs
├─temp
──────────────────────────────
JDK のインストール
jdk-11.0.4_windows-x64_bin.exe を JAVA の WEB サイトからダウンロードしてインストールした。
──────────────────────────────
Pathの追加
Pathの追加
コントロールパネル経由で下記のパスを追加した
C:\Program Files\Java\jdk-11.0.4 \bin
──────────────────────────────
PowerShell スクリプト C:\fess\fess-13.1.1\bin\fess_start.ps1 を新規作成
必要な環境変数を設定して fess.bat を起動する PowerShell スクリプトを新規作成した。
PowerShell スクリプト C:\fess\fess-13.1.1\bin\fess_start.ps1 を新規作成
必要な環境変数を設定して fess.bat を起動する PowerShell スクリプトを新規作成した。
バッチファイルでなく PowerShell スクリプトにしたのは、 Fess が起動失敗したらリトライさせるため。
Solr から ElasticSearch に変更されてから、よく起動失敗しているように見受けられる。
それから物理メモリは 24Gbyte と潤沢に搭載しているのでメモリ最大値を変更しておく。
─────
#環境変数 JAVA_HOME 設定
[System.Environment]::SetEnvironmentVariable('JAVA_HOME', 'C:\Program Files\Java\jdk-11.0.4', 'Machine')
#環境変数 FESS_HEAP_SIZE を4ギガに設定
[System.Environment]::SetEnvironmentVariable('FESS_HEAP_SIZE', '4g', 'Machine')
C:
cd C:\fess\fess-13.1.1\bin
#Fess 起動ループ もし起動失敗していたら再トライする
do {
#Fess 起動
$proc = Start-Process -FilePath "C:\fess\fess-13.1.1\bin\fess.bat" -PassThru
Start-Sleep -Seconds 120
#ログファイルサイズ監視ループ
do {
Start-Sleep -Seconds 60
$logsize = (Get-ChildItem "C:\fess\fess-13.1.1\logs\server_0.log").Length
} while ($logsize -lt 10000) #10kバイト越えていたら起動失敗とみなし、ループ終了
#Fess 強制終了
Stop-Process -Name "java" #この処理入れると他のjavaプログラムも落ちるが仕方ないとする
Stop-Process -InputObject $proc #この一行だけではうまく動かなかった
Start-Sleep -Seconds 10
} while (1)
[System.Environment]::SetEnvironmentVariable('JAVA_HOME', 'C:\Program Files\Java\jdk-11.0.4', 'Machine')
#環境変数 FESS_HEAP_SIZE を4ギガに設定
[System.Environment]::SetEnvironmentVariable('FESS_HEAP_SIZE', '4g', 'Machine')
C:
cd C:\fess\fess-13.1.1\bin
#Fess 起動ループ もし起動失敗していたら再トライする
do {
#Fess 起動
$proc = Start-Process -FilePath "C:\fess\fess-13.1.1\bin\fess.bat" -PassThru
Start-Sleep -Seconds 120
#ログファイルサイズ監視ループ
do {
Start-Sleep -Seconds 60
$logsize = (Get-ChildItem "C:\fess\fess-13.1.1\logs\server_0.log").Length
} while ($logsize -lt 10000) #10kバイト越えていたら起動失敗とみなし、ループ終了
#Fess 強制終了
Stop-Process -Name "java" #この処理入れると他のjavaプログラムも落ちるが仕方ないとする
Stop-Process -InputObject $proc #この一行だけではうまく動かなかった
Start-Sleep -Seconds 10
} while (1)
─────
──────────────────────────────
C:\fess\fess-13.1.1\app\WEB-INF\classes\fess_config.properties
こちらもメモリ最大値を変更しておく。
ファイルの #JVM options のところを修正した。
ファイルの #JVM options のところを修正した。
-Xms4g\n\
-Xmx4g\n\
-Xmx4g\n\
──────────────────────────────
C:\fess\fess-13.1.1\app\WEB-INF\classes\crawler\contentlength.xml
クロール対象とするファイルサイズを大きくしておく
<property name="defaultMaxLength">41943040</property>
──────────────────────────────
C:\fess\fess-13.1.1\app\WEB-INF\env\crawler\resources\app.xml
CPU や NAS に負担をかけたくない昼間は1回クロールするごとに、15秒のインターバルをいれて、クロール作業スピードを落としておく。
<postConstruct name="addIntervalRule">
<arg>"9:00"</arg>
<arg>"21:00"</arg>
<arg>"1,2,3,4,5,6,7"</arg>
<arg>15000</arg>
</postConstruct>
──────────────────────────────
とりあえず FESS 起動前にすることは以上
とりあえず FESS 起動前にすることは以上