[netatalk-ja:0068] Re: Spotlightと日本語

HAT hat @ fa2.so-net.ne.jp
2013年 3月 22日 (金) 00:03:21 JST


HATです。

> 本家のほうで、Spotlightネタが盛り上がっています。
> 
> http://netatalk.sourceforge.net/wiki/index.php/Spotlight_Technology_Preview
> http://hatx.blog.so-net.ne.jp/netatalk_search

私のページで書いているのは、

  FPCatSearchExtを使う場合、文字列の比較を行うのはnetatalkなので、
  netatalk内に曖昧検索のテーブルが必要である。

ということです。
このページを書いた段階では、NFKDのテーブルを用意すればいいだろうと
考えていました。ある程度ソースも書きました。
しかし、その後調査したところ、NFKDだけでは足りないという事実が判明しました。
OS Xでローカルボリュームの検索を試したところ、
ドイツ語のエスツェット「ß」と「ss」と同一視する実装になっています。
しかし、NFKDのテーブルにはこのルールがありません。
別の大文字/小文字変換のテーブルが必要です。

> あたりをみますと、Spotlightを使うためにTrackerやlibtracker-sparql
> というのが使われているようです。
> https://live.gnome.org/Tracker/

> 日本語を使う場合、これ(libtracker-sparql)を日本語対応(NFKD対応)させる必要があるということなんですかね?

Trackerのドキュメントをよく読むと、曖昧検索ができるとかかれています。
上記「ß」と「ss」を同一視するともかかれています。
つまり、Tracker内にテーブルを含んでいるので、netatalkはTrackerに
文字列を丸投げするだけで、曖昧検索ができると思います。(未確認)
netatalk側にテーブルは必要ないと思います。

で、Trackerのソースを読んで、テーブルがどこにあるか探しましたが、
見つかりませんでした。
たぶんGNOME本体のどこかにテーブルがあるのだと思います。
まだ発見してませんが。

別件ですが、「Netatalkで日本語を使う」という概念は捨ててください。
間違っています。「NetatalkでUnicodeを使う」と考えてください。
日本語のことを考えなければいけないのは、OS9以前のユーザだけです。

-- 
HAT


Netatalk-ja メーリングリストの案内