Rails Webook

自社のECを開発している会社で働いています。Rails情報やサービスを成長させる方法を書いていきます

RailsでReactを使ってメッセージボックスアプリを作成

f:id:nipe880324:20180819012117p:plain:w420

react-railsというReact.jsをRailsに簡単に統合できるgemを使い、React.jsについて説明します。

次のような画面をReact.jsで実装し、Reactとサーバ(Rails)間でメッセージ一覧の取得や作成をできるようにします。

続きを読む

RailsでElasticsearch: サジェスト (Suggest) 機能でオートコンプリート

f:id:nipe880324:20151027234933p:plain:w420

今回は、「Elasticsearchのサジェスト(Suggest)機能でオートコンプリートを実装」します。

RailsでElasticsearchを使って検索機能を実装してきました。


サジェスト機能では、サジェスター(Suggester)を利用し、入力したテキストから似たような単語を返す機能です。
Elasticsearch 1.7 では、サジェスト機能の一部はまだ「開発中」のようです。

参考までに、ソースコードはこちらです。elasticsearch_test - GitHub

続きを読む

RailsでElasticsearch: ハイライト(Highlight)

f:id:nipe880324:20151017170217p:plain:w420

RailsでElasticsearchを使って検索機能を実装してきました。
今回は、「Elasticsearchのハイライト機能」について簡単に説明します。

参考までに、ソースコードはこちらです。elasticsearch_test - GitHub

続きを読む

RailsでElasticsearch: アグリゲーション(ファセット)と Post Filter

f:id:nipe880324:20151017170217p:plain:w420

RailsでElasticsearchを使って検索機能を実装してきました。
今回は、「アグリゲーション(ファセット)と Post Filter」について説明します。

「アグリゲーション」は、SQLでいうGROUP BYのようなもので、最小値、最大値、平均値などを求めたり、カテゴリ毎の数を数えたりなどドキュメントを集約させるものです。Elasticsearchでは、従来あった集約機能の「ファセット」では複雑な集約を処理できなかったので、新しくアグリゲーションを作ったぽいです。

具体的には、下記画像の左側のサイドバーで検索結果を絞り込めるようにします。
f:id:nipe880324:20151021235800p:plain:w420

続きを読む

RailsでElasticsearch: ソート機能を実装

f:id:nipe880324:20151017170217p:plain:w420

前々回は「RailsでElasticsearchを使って簡単な全文検索」、
前回は、「ページネーション・1ページあたりの表示件数」を実装しました。
今回は、「ソート機能」を実装します。Elasticsearchのソート機能があるのでかなり簡単に作成できます。

続きを読む

RailsでElasticsearch: ページネーションと1ページの表示件数を実装

f:id:nipe880324:20151017170217p:plain:w420

前回の記事で、「RailsでElasticsearchを使って簡単な全文検索」を実装しました。
今回は、「ページネーション・1ページあたりの表示件数」について実装していきます。
ページネーションの実装は、Railsのページネーションを実装する有名なgemのkaminariを使って実装します。

続きを読む

RailsでElasticsearch: 全文検索を実装

f:id:nipe880324:20151017170217p:plain:w420
RailsでElasticsearchを使ってレストラン検索アプリを作成、店名、住所、カテゴリなどからレストランを全文検索できるようにします。また、フィルタ(filter)も使って検索条件を指定することで、閉店している店舗も含めて検索できるようにします。

今後、Elasticsearchのページネーション・ページあたりの表示件数、ソート、ファセット・post_filter、ハイライト、サジェスト機能などをより実践的な機能を実装していきます。

続きを読む