【悩み】
・Fessとは?何ができるの?使い方は?
・Fessの特徴(メリット、デメリット)やどの場面で使うかを知りたい。
・今からFessを使いたい!「すぐ実践できる使い方」を把握したい。
こういった「悩み」に答えます。
【本記事の内容】
① Fessとは?:Javaベースの全文検索ソフトウェア
② Fessの特徴:5つのメリットと3つのデメリット
➂ Fessの導入事例3選
④ Fessの使い方:ダウンロードから全文検索までを解説
本記事を熟読したことで、1時間以内で「Fessとは?の理解から下の動画のような簡単な操作」をできるようになりました。
記事の前半では「Fessで何ができるか」や「サポートしているOSと特徴(メリット/デメリット)」を解説します。
記事の後半では「3つの導入事例」から「インストール方法/簡単な全文検索の操作」までを紹介します。
この記事を読み終えることで、「Fessを使う上で最低限必要な知識や操作手順を把握した」状態になります。
Fessとは?:Javaベースの全文検索ソフトウェア
「Fessとは?」に関してご紹介します。
【ご紹介事項】
・Fessとは何か?できることは?
・Webインタフェースから検索や管理設定が可能
・サポートしているOSや言語
・ライセンス:商用でも利用可能
・コミュニティ(開発元)/開発の状況
以降で、上記「ご紹介事項」の各項目に関してご説明します。
Fessとは何か?できることは?
「Fessとは何か?できることは?」に関して解説します。
「どういったソフトウェアなのか?」や「できることは?」に関して簡単に紐解いていきますね。
公式サイトでは、以下のように説明されています。
Fess はウェブやファイルシステムを対象とした、オープンソースの全文検索システムです。
参照:Fessとは何か?(公式サイト)
少し簡潔すぎる言葉で「Fessとは何か?」を説明されています。
以下にもう少し詳細な文言に置き換えたものを記載しますね。
【Fessとは?】
Fessは、Javaで開発されたオープンソースの全文検索ソフトウェアです。
本ソフトウェアでは、ElasticsearchというOSSを内部で利用しています。
これにより、高速な全文検索を実現しています。
全文検索とは:複数ファイルから特定キーワードを検索すること
例えば、1,000以上あるパワーポイントのファイルから「りんご」という文字が記載されたパワーポイントを数秒で見つけることができます。
ちなみに、一般的に以下のように呼称されています。
【呼び方/読み方】
以下のどちらかで呼ぶパターンが多いです。
・フェス
・エフイーエスエス
Webインタフェースから検索や管理設定が可能
Fessでは、以下の機能をWebインタフェース経由で使えます。
【Webインタフェースから使える機能一覧】
・キーワードによる全文検索(検索に関する公式サイトの解説)
・バックアップなどの管理者向け機能(管理に関する公式サイトの解説)
・全文検索対象の設定などの設定機能(設定に関する公式サイトの解説)
キーワードによる全文検索のWebインタフェースは、以下となります。
管理者向け機能のWebインタフェースは、以下となります。
設定機能のWebインタフェースは、以下となります。
ちなみに、以下のAPIも提供しています。
【Fessが提供しているAPIの一覧】
・検索API
・ラベルAPI
・人気ワードAPI
・Ping API
・Google Search Appliance 互換 API
参照:API一覧(公式サイト)
サポートしているOSや言語
サポートしているOS(動作環境)は、以下となります。
【動作環境】
JavaまたはDockerが実行可能なOS環境 (WindowsやLinuxなど)
参照:サポートOSについて(公式サイト)
ちなみに、筆者は、「Windows」で使ったことがあります。
本記事の後半で、「Windows」にFessをインストールする方法を説明します。
また、Fessでは、様々な言語に対して全文検索を実施できます。
【対応言語】
アラビア語,ブルガリア語,ベンガル語,カタロニア語,中央クルド語 (イラク),チェコ語,デンマーク語,ドイツ語,ギリシャ語,英語,スペイン語,エストニア語,バスク語,ペルシア語,>フィンランド語,フランス語,ガリシア語,グジャラート語,ヘブライ語,ヒンディー語,クロアチア語,ハンガリー語,アルメニア語,インドネシア語,イタリア語,日本語,韓国語,リトアニア語,ラトビア語,マケドニア語,マラヤーラム語,オランダ語,ノルウェー語,パンジャブ語,ポーランド語,ポルトガル語 (ブラジル),ポルトガル語,ルーマニア語,ロシア語,シンハラ語,アルバニア語,スウェーデン語,タミル語,テルグ語,タイ語,タガログ語,トルコ語,ウクライナ語,ウルドゥー語,ベトナム語,中国語 (中国),中国語 (台湾)
ライセンス:商用でも利用可能
「料金プランとライセンス」に関して説明します。
「そもそも無料で利用できる?」の疑問を解消していきますね。
料金プランは、以下となります。
【料金プラン】
完全無料で「ダウンロード」「インストール」「全文検索」ができます。
完全無料となっている理由としては、以下のライセンスで開発されたOSS(オープンソースソフトウェア)であるためです。
【ライセンス】
Fessは、「Apacheライセンス(2022年11月8日時点)」というライセンスで開発されています。
上記ライセンスであるため、「個人利用」「商用利用」であっても完全無料で使えます。
参照:ライセンスについて
コミュニティ(開発元)/開発の状況
「コミュニティ(開発元)/開発の状況」に関して解説します。
個人や業務で使う場合、脆弱性などのバグが「どのぐらいの頻度で修正されるか」気になりますよね。以降で簡単に解説します。
コミュニティ(機能開発やバグ修正している団体)の活動状況は、以下のサイトで確認できます。
>> コミュニティのサイト
上記のサイトから、「開発状況」や「修正頻度」を把握できます(下図参照)。
開発状況を見てみると「2013年から継続的に開発」を実施しているように見えます。
また、開発が継続して行われているため、脆弱性などがあった場合は比較的はやく修正されるソフトウェアだとも考えられます。
個人的には、「バグなどが少なさそう」や「定期的に開発はされている」という観点から、個人や業務で使っても「問題ない」と考えています。
Fessとは、完全無料で様々なファイルに対して全文検索できるソフトウェアです。
以降で、メリットとデメリットに関してご紹介しますね。
Fessの特徴:5つのメリットと3つのデメリット
今までご紹介した内容を踏まえて、Fessのメリットとデメリットをご紹介しますね。
実際に使ってみて、「5つのメリット」「3つのデメリット」があると感じました。
早速ですが、メリットは、以下だと考えます。
【メリット】
① ダウンロードしてすぐ使える
5分で使い始められます。WindowsだとZIPを展開するだけで使えます。
➁ 全文検索できる対応ファイルやデータ形式が多い(Webサイトも対応)
テキストや画像などに全文検索できます。(検索対象ファイルの一覧)
➂ S3などのクラウドのファイルストレージにも対応
S3などにも全文検索できるプラグインが用意されています。(下図参照)
④ 自動クロールの設定(インデックス作成)
定期的に対象フォルダ等を監視し、新規ファイルにも全文検索できます。
⑤ スマートフォン対応
レスポンシブルなためスマートフォンでも閲覧できます。(下図参照)
【プラグインの一覧】
Fessでは、プラグインを導入することで以下に対しても全文検索できます。
atlassian、box、csv、db、dropbox、elasticsearch、git、gitbucket、gsuite、json、office365、s3、salesforce、sharepoint、slack、wikipedia、logger、ndjson、groovy、ognl、mysql-connector-java、postgresql、ojdbc、mssql-jdbc
また、デメリットは、以下となります。
【デメリット】
① 1ファイル1ヒットのみ(下図参照)
➁ 検索ヒットしたページ番号や行数などは表示されない(下図参照)
➂ Elasticsearchに関する知識が必要なケースあり
全文検索の対象数やサイズが膨大な場合、チューニングが必要です。
チューニングにはElasticsearchというOSSの知識が必要です。
メリットとデメリットをしっかり把握することで、適切な場所でFessを使うことができます。続いて、導入事例をご紹介しますね。
Fessの導入事例3選
「導入事例3選」に関してご紹介します。
【ご紹介事項】
・パワーポイント全文検索システム
・Tesseract連携による画像ファイルの全文検索
・N2 Search ASPサービス(Fessをベースとして開発)
以降で、上記「ご紹介事項」の各項目に関してご説明します。
パワーポイント全文検索システム
FessとPythonを組み合わせることで、下の動画のような「パワーポイント全文検索システム」を作成できます。
Fessのデメリットとして「検索ヒットしたページ番号や行数などは表示されない」や「検索ヒットしたスライドのみダウンロードできない」があります。
そのデメリットを補うために、Pythonを組み合わせて下図のように「パワーポイント全文検索システム」を構築しています。
上記のシステムを作成する手順に関しては、近日中に公開予定です。
Tesseract連携による画像ファイルの全文検索
詳しくは、以下の記事「OCR機能で文書画像の全文検索」箇所をご覧ください。
>> 【要点】Tesseractとはを解消!初心者向けに特徴から使い方を図解
N2 Search ASPサービス(Fessをベースとして開発)
N2 Search ASPサービスは、Fessの開発元である「株式会社エヌツーエスエム」が運営しているサービスです。
【N2 Search ASPサービス】
Fessをベースとして開発されたサービスで、以下の機能を有します。
検索アシスト機能(サジェスト機能)、関連キーワード表示機能、関連商品表示機能、タグ付け機能、高い検索精度、高い検索応答速度、検索ログでユーザーのニーズを把握、XML/JSON形式出力対応、セキュリティチェック
参照:N2 Search ASPサービスの概要(公式サイト)
Fessを使うことで、膨大にあるファイルからあるキーワードが記載されたファイルを数秒で把握できます。以降で、インストール方法から説明しますね。
Fessの使い方:ダウンロードから全文検索までを解説
「使い方」に関してご紹介します。
【使い方】
手順1:Fessのダウンロード(インストール)と文書の全文検索
手順2:FessのAPIを使う方法
手順3:Tesseract連携による画像ファイルの全文検索
以降で、上記の各手順に関してご説明します。
手順1:Fessのダウンロード(インストール)と文書の全文検索
Fessをダウンロードし、文書の全文検索をするまでの手順をご紹介します。
Windowsの場合、ZIPをダウンロードし解凍するだけで使い始められます。
詳細な手順に関しては、以下の記事をご覧ください。
>> 【Windows向け】Fessをインストールする方法を要件から解説
>> 【Ubuntu向け】Fessのインストール方法を要件から解説
>> 【Linux向け】Fessのインストール方法を要件から解説
>> 【MacOS向け】Fessのインストール方法を要件から解説
手順2:FessのAPIを使う方法
FessのAPIを使う方法に関して事例を用いてご紹介します。
CURLコマンドから検索API/ラベルAPI/人気ワードAPI/Ping APIを使ってみましょう。
詳細な手順に関しては、以下の記事をご覧ください。
>> 【検索編】Fessが提供するAPIの使い方とPythonでの実行方法
手順3:Tesseract連携による画像ファイルの全文検索
Tesseractと連携することで、PNGやJpegなどの画像ファイルに対しても全文検索ができるようになります。
Fess単体では、画像ファイルに対して全文検索はできません。OCRソフトウェアであるTesseractと連携することで実現できます。
詳細な手順に関しては、以下の記事をご覧ください。
>>【OCR利用】FessでPNG画像ファイルを全文検索する方法
実際に触ってみたことで、「Fessの使い方って要点を抑えれば簡単では?」と思いませんでしたか?
是非、その感覚を忘れずに開発現場や個人開発で活用してみてください。
【まとめ】Fessとは?全文検索システムを5分で作れるOSS!
いかがでしたでしょうか?
上記で紹介した「Fessとは?」「メリットとデメリット」を理解していただくと、操作や使い方で悩むことは一切なくなり、適切な場面で利用できます。
最後にもう一度内容を確認しましょう。
【おさらい】
・Javaで開発されたオープンソースの全文検索ソフトウェア
・テキストファイルだけでなくwordファイルなどにも全文検索が可能
・大規模なファイル数を対象とする場合、Elasticsearchの知識が必要
Fessに関連するその他の記事を確認したい方は、以下のURLにアクセスしてください。
コメント