05/11/13 14:04:59
やっとこさyaskkserv-0.2の簡易レビューでも。
このサーバは独自形式の辞書を使います。
まずは挙動について:
- 変換した辞書のパーミッションに'w'が付いてると、
illegal permission 0100664とか言われるのですが、
ユーザフレンドリになってくれると有難い。
- 未知の命令を受けつけた時('4'を含む)、なにも返してくれません。
- '2'(server version)に対しては'0.2'と、'yaskkserv'とかを含まない簡素なものです。
もし今後いろいろ機能を増やす方向に進むなら、どのサーバか分かるほうがいいかな。
辞書について:
送り有りと送り無しエントリを区別無くソートし、それを適当な固まり毎に
ブロックとしています。
検索時はまずインデックス(これは通常メモリに保持する)から、
そのエントリがどのブロックに含まれるか割り出し、
該当ブロックを(おそらく)一気にメモリに読み込んだうえで、
そこに含まれるエントリに対してバイナリサーチ&リニアサーチします。
cdbなどのように全てのエントリへのoffsetを持つわけでないのでコンパクトになり、
普通のバイナリサーチと違いディスクのシークも減るというわけです。
おそらくメモリ内に持つインデックスを小さくする為だと思いますが、
「ひらがなエンコード」という見出しの変換を行なっています。
このため、平仮名のみからなる見出しを多く含む辞書(普通のですな)では
元のより小さくなる事があります(変換時のオプション次第)。