あるリストを元に、それと似た内容を持つリストをデータベースの中から探したい、 というケースはいくつか考えられる。 例えば、 いくつかの商品を組み合わせて作ったセット商品のうち、今見ている商品と同じような構成のものを探す SNSで自分と同じようなフレンド構成を持つユーザーを抽出して自分と似たユーザーを探す あるユーザーの購入履歴を元に同じような購入履歴を持つユーザーを抽出し、それらのユーザーが買っていてまだ買っていない商品をレコメンドする 基本となるのは、 リスト同士を比較してその類似度を元に並べ替えてより類似したものを見つける、 ということだと思うのだけど、実際どのように実装されているのだろうか。 上記の例はどれもデータがどんどん増えていくので、 あらかじめリスト間の類似度を算出しておく、ということはできそうにないし、 データが増える度に既存のリストとの類似度をチェックして保存しておく、
![PostgreSQLで2つのリスト間の類似度を算出する方法を考える - ほんじゃらねっと](https://cdn-ak-scissors.b.st-hatena.com/image/square/61200633459263c52c1bf7002fa6b9a21c693996/height=288;version=1;width=512/http%3A%2F%2Fecx.images-amazon.com%2Fimages%2FI%2F411xr-FagVL.jpg)