Fess 14.0.0のリリース

Fess 14.0.0をリリースしました。

現時点では、インストールガイドはElasticsearch 8系の説明しかないですが、Elasticsearch 7やOpenSearchの情報も整理していくと思います。商用提供では、しばらくはFess 14 & Elasticsearch 7の組み合わせてで提供していくと思いますし。そんな感じですが、fess自体に入れたIssuesたちを見ていくと、

#2603はコードを整理しただけです。Fess 14からJava 17ベースに変わっているので、それに合わせてEclipseにコードを整理してもらいました(Eclipseにコードの自動整理をしてもらった感じ)。

#2606#2615#2616は、Fess 14ではドットで始まるインデックス名を使わないようにしているので、それに関する変更です。

#2617#2620#2624#2625はアップグレードなどのメンテ系の更新作業になります。

#2614#2623#2628は、今までFess内部の検索エンジンのコードにFesenを使っていたものをOpenSearchに置き換えました。まぁ、Fessの内部の検索エンジンのコードが何かは重要ではないのですが…。重要なのは、外部の検索エンジンへのアクセスにはFesen HttpClientを利用することで、FessがElasticsearchやOpenSearchなどの検索エンジンサーバーを選択して利用することができるようになった点でしょう。Fesen HttpClientが差分を吸収してくれる感じです。

#2618はTikaのバージョンを2.2系に上げました。Tikaは2系になって、Fessからみると依存関係が難しくなった気もしますが…。

#2619はサムネイル生成でコマンド呼び出しで生成する場合に、呼び出すコマンドの処理を整理した感じです。出力するログの整理等も含めて。

#2622はクロール時のファイル名取得処理において、Webだと#とかのあとは捨てればよいのですが、ファイルシステム系ではファイル名に#とかが使われている場合もあるので、ファイル名が正しく取得できるようにしました。

#2626は、Elasticsearch 8になり、ElasticsearchへのアクセスがデフォルトでTLSを有効にしているので、Fessでもそれに対応できるようにしました。つまり、https://localhost:9200/のときにもFessから利用できるようになりました。

#2627はクロール時にFessからElasticsearch/OpenSearchにアクセスするスレッド数を指定できるようにしました。

という感じではありますが、何かあれば、フォーラムに投げてください。

Elasticsearch 8で初期パスワードを指定する

Elasticsearch 8を何も考えずに起動すると、初回起動時にelasticユーザーのパスワードが自動生成されます。起動する前にパスワードを設定しておきたい場合は、elasticsearch-keystoreコマンドで、bootstrap.passwordを設定しておけばそれが利用されるわけですが、インタラクティブに聞かれても面倒な場合は以下のような感じで渡してあげると設定できます。

$ echo ${es_password} | ./bin/elasticsearch-keystore add "bootstrap.password" -xf

GitHubActionのWindowsでMaven実行

ファイルロックされてファイルが消せないとか、Windowsで発生する問題を検知したいなと思い、GitHub ActionsでLinux&Windowsで実行したくなったので、調べたら、簡単にできた。

たとえば、.github/workflows/maven.ymlを

name: Java CI with Maven

on:
  push:
    branches:
    - main
  pull_request:
    branches:
    - main

jobs:
  build:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 11
      uses: actions/setup-java@v2
      with:
        java-version: '11'
        distribution: 'temurin'
    - name: Build with Maven
      run: mvn -B package --file pom.xm

という感じで、作っておいておけば、良い感じだった。