Nextcloud

Nextcloudの全文検索機能と検索テクニック

Nextcloudの全文検索機能とあまり知られていない検索時のテクニックについてご紹介します。

1. Nextcloudの全文検索機能について

Nextcloudはファイルを保存、閲覧、共有、ダウンロードできる便利なサーバーアプリケーションですが、ファイルを沢山アップロードしてしまうと、「あのファイルどこやったっけなぁ。見つからないなぁ」ということも当然あります。

Nextcloudの検索機能を使ってファイルを探すのですが、デフォルトの検索機能はファイル名しか検索しないためファイル名を思い出せなければ見つけ出すことができません。

しかし、Nextcloudに全文検索機能プラグインを追加し、Elasticsearchサーバーに登録すれば、ファイルの内容でファイルを検索できます。これは、大量のファイルを扱っている場合に非常に役に立ちます。ファイルが見つからないストレスを軽減し、仕事の効率が向上すること間違いなしです。

以下の画面は、弊社で利用しているNextcloudの全文検索機能のファイル検索画面です。
(社内のものなのでいくつかマスクしています)

全文検索画面

1-1. 検索対象ファイル種別と検索範囲

Elasticsearchを使って、テキストファイルはもちろん、下記のようなxlsxやdocx、pptx、pdfファイルといったオフィスファイルも検索できます。
検索できるファイルは、自分が閲覧可能なフォルダー内のファイルが対象で、グループフォルダー内のファイルも検索できます。

Nextcloud全文検索機能の検索対象

1-2. ファイル検索のアーキテクチャ

全文検索機能はElasticsearchサーバーを利用します。その為、Nextcloudサーバーとは別にElasticsearchサーバーを導入する必要があります(現時点では、Elasticsearch 7系のみ対応)。
Nextcloud側では以下のプラグインが必要です。

全文検索サーバー

Elasticsearchサーバーは、Nextcloudとは別のところで動かすようにしています。Nextcloudと同居させるアーキテクチャもありますが、サーバーの負荷などを考えると別インスタンスにElasticsearchサーバーを立てて動かすのがおすすめです。

Nextcloud全文検索機能アーキテクチャ

2. 全文検索のテクニック

全文検索でファイルを検索する文字列を指定するときにちょっとしたテクニックがあります。
Googleでの検索もそうですが、検索文字列で以下の工夫するとファイルを早く絞り込み必要なファイルを見つけられます。

2-1. 基本検索

Nextcloud全文検索機能では普通に文字列を並べると「or」検索になります。

例えば、以下のようなパワーポイントのファイル(aaaa.pptx,bbbb.pptx,cccc.pptx)があり、ファイル内にグレー部分のテキストが入っていたとします。

それを「ああああ かかかか」で検索すると全てのファイルがヒットします。

基本 or 検索

2-2. 必須文字列を指定

Nextcloud全文検索機能では文字列前に+をつけると必須検索になります。 +の文字の後についている文字列が入っていないと検索結果に出てこなくなります。

必須文字列検索

2-3. 除外検索

Nextcloud全文検索機能では文字列前に-をつけると除外検索になります。-の文字の後についている文字列が入っていると除外されます。

以下の例だと「ああああ」を検索するとaaaa.pptxとcccc.pptxの2つのファイルが引っかかりますが、「-しししし」によってcccc.pptxが除外されます

除外検索

2-4. 連結文字検索

Nextcloud全文検索機能では文字列を””で括ると一つの文字列として検索します。

以下の例だと「Hello Japan」を検索するとcccc.pptxのみ検索されます。

絶対文字検索

はずなのですが、日本語のKuromojiトークナイザーの問題か、うまく検索できませんでした。
ご利用時はご注意ください。

3. まとめ

  • NextcloudではElasticSearchサーバーと連携させることによりファイル内の全文検索機能を追加することができる
  • 検索には検索文字列を工夫することで絞り込みができます