近年、検索技術の進化に伴い、従来のキーワード検索に加えて、意味に基づく検索手法である「セマンティック検索」も利用できるようになってきました。セマンティック検索は、検索対象の文書に関する意味的な表現を利用して、利用者が検索する内容に適した検索結果を提示します。
Fessでも標準的なキーワードによる検索に加えて、セマンティック検索が利用できるように対応が進められています。まだ実験的な機能ではありますが、今回は、Fessでのセマンティック検索の利用方法について紹介します。
Fessの起動
セマンティック検索を利用するためには、Fess 14.7以上が必要になります。 今回は、Docker Composeを利用して、Fess 14.7.0とOpenSearch 2.6の環境を構築します。 まず、Docker Composeで起動に必要なファイルをダウンロードします。
$ curl -o compose.yaml https://raw.githubusercontent.com/codelibs/docker-fess/v14.7.0/compose/compose.yaml
$ curl -o compose-opensearch2.yaml https://raw.githubusercontent.com/codelibs/docker-fess/v14.7.0/compose/compose-opensearch2.yaml
セマンティック検索を利用するためには、fess-webapp-semantic-searchプラグインが必要になります。そのプラグインをインストールするため、ダウンロードしたcompose.yml 9行目の「FESS_PLUGINS=〜」のコメントアウトを外し、以下のように書き換えます。
environment:
- "SEARCH_ENGINE_HTTP_URL=http://es01:9200"
- "FESS_DICTIONARY_PATH=${FESS_DICTIONARY_PATH:-/usr/share/opensearch/config/dictionary/}"
- "FESS_PLUGINS=fess-webapp-semantic-search:14.7.0 fess-ds-wikipedia:14.7.0"
fess-ds-wikipediaプラグインは、セマンティック検索には不要ですが、Wikipediaのデータを利用して、今回の検索結果の検証をするためにインストールします。 compose.yaml の修正後、compose.yamlが置いてあるフォルダで、以下を実行してFessを起動します。
$ docker compose -f compose.yaml -f compose-opensearch2.yaml up -d
管理画面左メニューの「システム」>「プラグイン」をクリックし、「fess-webapp-semantic-search」と「fess-ds-wikipedia」のプラグインがインストールされていることを確認してください。