ローマ字のまま日本語をインクリメンタル検索するためのツールであるMigemoを、Go言語で実装したものです。
項目 | C/Migemo | gomigemo |
---|---|---|
実行ファイルサイズ(KB) | 72 | 1974 |
辞書ファイルサイズ(MB) | 4.78 | 2.03 |
メモリ使用量(MB) | 26.1 | 12.1 |
起動時間(ms) | 198 | 78 |
クエリ時間(ms) | 5053 | 5860 |
詳細はmigemo-benchmarkを参照してください。
> go build -ldflags="-s -w" -trimpath
gomigemoの利用には、辞書ファイルが必要です。
migemo-compact-dict-latest
から migemo-compact-dict
をダウンロードし、
作業フォルダ(シェルのカレントディレクトリ)に配置してください。
なお、migemo-compact-dict
のライセンスはGPLv3のため、再配布する際はご注意ください。
> ./gomigemo.exe -h
Usage of C:\...\gomigemo.exe:
-d string
Use a file <dict> for dictionary. (default "migemo-compact-dict")
-e Use emacs style regexp.
-n Don't use newline match.
-p int
<port> number for HTTP server.
-q Show no message except results.
-v Use vim style regexp.
-w string
Expand a <word> and soon exit.
> ./gomigemo.exe -w kensaku
(kensaku|けんさく|ケンサク|建策|憲[作冊]|検索|献策|研削|羂索|kensaku|ケンサク)
gomigemoはHTTPサーバとして動かすことができます。
コマンドライン引数 -p <port>
で、サーバのポート番号を指定すると、HTTPサーバとして起動します。
> ./gomigemo.exe -p 8080
指定したポート番号に /migemo?q=<word>
にGETメソッドでアクセスすると、
<word>
の文字列がMigemoの正規表現として返ってきます。
クエリ文字列q
を複数つなげると、複数Migemoの処理が同時に行われ、順に改行されて返されます。
> ./curl.exe "localhost:8080/migemo?q=migemo&q=kensaku"
(migemo|みげも|ミゲモ|migemo|ミゲモ)
(kensaku|けんさく|ケンサク|建策|憲[作冊]|検索|献策|研削|羂索|kensaku|ケンサク)
MIT Licenseの下で配布しています。