elasticsearch-ruby でトークナイザーを指定してトークン分割

スポンサーリンク

elasticsearch-ruby を使っていて文字列をトークンに分割して、ruby の配列で受け取りたい場面がありました。Elasticsearch::API::Indices#analyze という、Elasticsearch の _analyze API をラップしてあるメソッドが使えます。

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

以下 pry で。

Elasticsearch::API::Indices#analyze を使う

トークナイザーの指定なしだと、上のように1文字ごとに区切ってしまい使えない。

tokenizer オプションを渡せる

引数で tokenizer を指定できます。以下、トークナイザー(tokenizer)に kuromoji_tokenizer を指定した場合です。

これでOK。良い感じにトークン分割してくれました。実際は以下のようなコードにして使いました。

完璧です。

スポンサーリンク
全文検索システムを実装するには、ElasticSearch がおすすめです。
 
スポンサーリンク

Leave Your Message!