2013目次どんなもの?出力サンプルお久しぶりです。気づいたらまた、結構ブログを書いてなかったです。今回は、今開発しているElasticsearchのプラグインに関するお話です。いやぁ、名前決めるの難しいですね。これで英語的に合ってるか不安ですが、elasticsearch-extended-analyzeというプラグインを作っています。どんなもの?Solrの管理画面のanalysisに相当する機能が欲しくて作り始めました。APIというAPI(名前あってるのかなぁ?)が存在します。これは、文字列を投げると、指定したアナライザやトークナイザでどのようなトークンに分割されるかを調べることができるAPIです。elasticsearch-analysis-kuromojiをインストールしたElasticsearchに対して、以下のcurlコマンドを実行します。'寿司が美味しい'すると、トークナイズされた結果が次のようなJSONで返ってきます。]}トークナイズの結果がわかるのは嬉しいのですが、どんな品詞なのかといったKuromoji固有のTokenの属性情報がなくなってしまいます。Solrでは、こんな画面が用意されていて、品詞情報とかが出力されます。あとは、各TokenFilterでどのトークンがなくなっているかなどもわかるようになっています。これって結構役立つと思うんですよ。いうことで、Pluginも作ってみたかったので、いい機会だから作ってみようかと。出力サンプルまずは、その他のAttribute(品詞とか)を表示するところを実装してみました。'寿司が美味しい'先ほどとほぼ一緒のcurlコマンドを実行します。違う点は**「_analyze」**が**「_extended_analyze」**となっている点です。実行結果はこんな感じです。(長いですがそのまま載せてます。続きの文章がしたにあります。]}先ほどの結果に**「extended_attributes」**という配列のオブジェクトが追加された形になっています。長くなってしまいましたが。Solrの処理を真似して作ったので大したことはやってないんですが、少しは便利になるかもなぁと。現時点では、最終的な結果しか取得できないですが、今後は次のような機能を作っていこうかと思っています。できるかどうかは、やってみてって感じですが。pluginコマンドでインストールpom.xmlはありますが、まだMavenとかに登録はされていません。packageしてからjarファイルをpluginsフォルダに配置しないといけません。pluginコマンドでインストールできるともっと使ってもらえるはず?出力したいAttributeの指定リクエストパラメータで、出力したいAttribute名を指定するとか。今は、Solrの真似をしていますが、せっかくJSONだったりするので、もう少し検討しようかと(同じAttributeの異なる値も1オブジェクトとして出力されてる)TokenizeChainの出力Solr同様、CharFilter、Tokenizer、TokenFilterが動作して、最終的なTokenがインデックスに登録されます。各処理の直後のTokenがどうなっているかもわかったほうが嬉しいと思うので、それらも取得できるようにしたいなぁと画面の用意せっかくプラグインなんだし、画面で見れると嬉しいかなと。これは当分先になっちゃうと思いますが、Webページで確認できるような画面を作ると確認しやすくなるかなぁと。上記対応が終わってから取替かかると思いますが。思いつくのはこんなかんじです。APIを真似しただけのコードだし、テストも実装もまだまだですが、とりあえず公開してみました。要望などあれば、コメント、Issue、ツイート(もちろん、テストコードなども!)なんでも受け付けてますので、お気軽に。