Netatalk 4.5.0
検索
Netatalk は macOS クライアント向けに Spotlight 互換の検索およびインデックス機能をサポートしており、macOS から Netatalk ボリューム上のファイルやメタデータを検索できる。
【注意】 Netatalk 開発チームの観測では、macOS においてリモートファイルシステムを検索できるのは Finder 検索 からのみであり、メニューバーの虫眼鏡アイコンから呼び出す Spotlight 検索 ウィジェットからは検索できない。これは macOS の制限であり、Netatalk の制限ではない。
Finder ウィンドウを開き、右上の検索ボックスで検索語句を入力し、 検索範囲オプションでネットワーク近隣または特定の Netatalk ボリュームを選択すること。
Classic Mac OS クライアントおよび初期の Mac OS X クライアント向けには、Mac OS のSherlock アプリで使用される旧来の検索機能「Catalog Search」をサポートしている。
macOS 向け Spotlight 検索
Netatalk の Spotlight 互換検索は spotlight オプションで制御できる。デフォルトで有効になっており、グローバルまたはボリューム単位でオン・オフを切り替えられる。
Spotlight のクエリ処理はプラグ可能なバックエンドアーキテクチャを採用している。AFP Spotlight RPC プロトコル層は共通で、クエリの実行はボリュームごとに選択したバックエンドに委譲される。
バックエンドはボリュームオプション spotlight backend で選択できる。未設定の場合、デフォルトは cnid で、Netatalk CNID データベースを使ったシンプルで軽量なファイル名検索バックエンドである。
例:
[Global]
spotlight = yes
[Documents]
path = /srv/afp/docs
spotlight backend = cnid
[Media]
path = /srv/afp/media
spotlight backend = localsearch
[Private]
path = /srv/afp/private
spotlight = no
利用可能な Spotlight バックエンド:
-
cnid ファイル名指向の検索に CNID データベースに対して cnid_find() を使用する。talloc ライブラリと Netatalk CNID データベース以外に実行時の追加依存関係はない。
-
localsearch ファイルコンテンツおよびメタデータの広範なインデックス・検索にLocalSearch/Tracker SPARQL バックエンドを使用する。このバックエンドにはLocalSearch/Tracker、TinySPARQL、GLib、D-Bus および関連ツールが必要である。
-
xapian ファイル名、プレーンテキストコンテンツ、MIME タイプ検索のためにNetatalk が管理するボリュームごとの Xapian インデックスを使用する。このバックエンドには xapian-core と libmagic が必要である。
【注意】 xapian バックエンドは実験的とみなされており、一般的な使用は推奨されない。
xapian
バックエンドはボリュームごとの共有インデックスを保存する。プライベートなファイルコンテンツが共有インデックスに取り込まれないよう、world-readable
かつインデックスプロセスが読み取り可能で、プレーンテキスト的であり、バックエンドのテキストサイズ制限内にある通常ファイルの本文のみをインデックスする。特定の
AFPユーザーには読み取れるが world-readable
でないファイルは、ファイル名やタイプのクエリにはマッチするが、kMDItemTextContent
などのコンテンツクエリにはマッチしない場合がある。
Spotlight バックエンドのビルド
Meson オプション with-spotlight-backends でビルドする Spotlight バックエンドを制御する。サポートされる値は cnid、localsearch、xapian である。
例:
meson setup build -Dwith-spotlight-backends=cnid,localsearch,xapian
デフォルトのビルドでは、依存関係が利用可能な場合に選択したバックエンドが有効になる。
localsearch 向け D-Bus デーモン
dbus-daemon バイナリは localsearch バックエンドを使用する際に必要である。そのパスは dbus-daemon ビルドシステムオプションによりコンパイル時に決定される。
dbus-daemon が別のパスにインストールされている場合は、グローバルオプションdbus daemon でパスを指定する。例えば OpenCSW 由来の Tracker を使用するSolaris の場合は以下のようにする:
dbus daemon = /opt/csw/bin/dbus-daemon
Classic Mac OS 向け Catalog Search
Netatalk は共有ボリューム上の高速なファイル名検索に CNID データベースを活用している。search db オプションで、高速なデータベース検索を使うか、より低速な再帰的ディレクトリスキャンを使うかを制御することもできる。