Bestrubyが好き。技術の話とスタートアップに興味があります。この広告は、90日以上更新していないブログに表示しています。Ruby前回に引き続きやっていきます。ElasticSearchを実際に使ってサンプルアプリを作ってみることにしました。作ったサンプルアプリはこちらhttps://github.com/yss44/searchkick_testPluginの確認を行なう。いえば、Pluginがしっかり起動しているか確認していなかったので確認。}}しっかり入っているようです。db:migrateを行なってシンプルなcrudアプリを生成。これでテストを行っていきます。Defaultでelasticsearchのurlはlocalhost:9200を使う。今回はDocker上で動いているので、環境変数でDocker上のelasticsearchのurlを指定する必要がある。今回はアプリの起動時に環境変数読み込む形にしておく。CLASS=Articleアプリケーション起動時に環境変数指定しているので、rakeの時に環境変数が反映されずエラーがでました。開発環境汚したくないので次のような形で無理矢理指定して行きます。ELASTICSEARCH_URL=http://192.168.33.10:9200で無事にインデックス完了。インデックスされてるか確認する。http://192.168.33.10:9200/_plugin/HQ/statusがyellowになってる。cluster.レプリケーションされていないかららしい。気にしないことにしておく。%></div>とかしてあげると、しっかり検索して、jsonで返ってくることを確認。endendそして、reindexする。ELASTICSEARCH_URL=http://192.168.33.10:9200すると、コメントの中身からも検索をかけられるようになっています。associations検索時に、has_manyやbelongs_toで繋がっているモデルも一度にネストした状態で取得できます。ネストした子モデルを取得するために何度もDBに取得しに行かないようにします。endautocomplete検索キーワードの自動補完を行なう設定をしてみます。UIを使用して実装するのが良いみたいです。今回はtypeahead.jsを使ってやってみます。タイトルを自動補完するように設定します。end+ルーティングを通します。vendor/assets以下にtypeahead.jsを落として来て配置。application.jsで読み込みます。autocompleteの処理を書くために、custom.js.coffeを追加し、application.jsでこちらも読み込んでおきます。custom続いてViewの設定をします。Viewのサーチボックスにidを振っておきます。</div>最後に、typeahead.jsを使って、autocompleteするように記述。)++)これで準備は整いました。ELASTICSEARCH_URL=http://192.168.33.10:9200を行なって検索ボックスに入力を始めると、自動補完されていろいろと出て来たかと思います。CSSが乗っていないのが原因でひどくズレていますが、今回は動作を確認することが目的なので省略します。条件指定して検索ここからは、解説のみになります。SQLライクに検索出来るみたいですね。Results特定のユーザーに最適化された結果を返すことも出来るようです。parsonalize:でなにをkeyとして結果を絞るかを指定。user_idsに製品を買った人のIDを指定する。検索時にユーザーIDを指定して検索掛けると、user_idが含まれているProductをboostして表示する。いうような形でしょうか。Better検索された結果を元に、検索エンジンを学習させて行く機能をつける方法もあるようです。公式のドキュメントだけだとよくわからんって感じですが、ここみたら解決しました。検索された際に、コントローラーでメトリクス収集すること、それと毎日cronなんかでreindexし直すことが必要があるみたいですね。Solrを使って全文検索機能を実装しようとしていましたが、ElasticSearchの方がシンプルで分かりやすいような気がします。Solrを使って開発していた際に、本番環境への移行で非常に苦労しました。Sunspot_solrからの切り替えやらなんやら。今度は、ElasticSearchを利用して実装してみようかなと思います。為替の予測モデルが利益を出すにはどれくらいの精度が必要なの?MF-DFAで金融時系列のフラクタル解析をやってみた。swarmクラスタをrubyのDSLで管理するツールAlgoを作りました転職しました。読者になる24はてなブログをはじめよう!yss44さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。