ECサイト検索における性能改善についてのセッションです。
ECサイトは商品の属性(色や重量、内容量など)によって、件数を集計して表示したり、チェックボックスによってフィルタリングをおこなったりする機能を有するものが一般的です。
Elasticsearchでそういった集計・フィルタリングを実現するための商品データを扱うために各商品の属性を個別のフィールドとして扱うと、属性値のバリエーション数が膨大になります。 これは、商品の種類によって保持している属性値の種類が異なるためです。
フィールド数が膨大になるとヒープ利用効率が悪くなるため、ヒープが逼迫しクエリ時にGCが発生しやすくなる場合があります。これによって検索性能が出なくなります。 また、ドキュメント登録時には頻繁に mapping が更新されるため、インデクシングのパフォーマンスを低下させる恐れもあります。
上記の課題を解決し、高速な検索・集計をElasticsearchで実現する方法やTipsについてお話します。