Rubyで配列の集合演算

    >


例えば、複数のキーワードの両方を含むWebページの一覧は積集合を求めていることになり、複数のキーワードのいずれかを含むWebページの一覧は和集合を求めていることになる。

p a & b  # 積集合
p a | b  # 和集合
p a - b  # 差集合

Ruby: 集合演算を行うには? – Build Insider

Railsで具体例を上げてみる。


Hashmodel.where(title:"title").ids => [1, 2] Hashmodel.tagged_with("fuga").by_join_date.ids => [6, 1] # titleが"title"でありかつ、"fuga"というタグがつけられているhashmodelのidを取得する(積集合) Hashmodel.where(title:"title").ids & Hashmodel.tagged_with("fuga").by_join_date.ids => [1] # 和集合;OR検索された場合を求める Hashmodel.where(title:"title").ids | Hashmodel.tagged_with("fuga").by_join_date.ids => [1, 2, 6] # ちなみに`+`を使用すると、配列がマージされる形になる。値が重複しているので、和集合ではない。 Hashmodel.where(title:"title").ids + Hashmodel.tagged_with("fuga").by_join_date.ids => [1, 2, 6, 1]

Ruby: 集合演算を行うには? – Build Insiderでは、集合の類似度を求めるジャッカード係数などについても紹介されている。
興味があれば読んでみるといい。



お困りですか?この記事で紹介していることをマンツーマンで指導、解説、代行します。まずはお気軽にお問い合わせください。


Close Menu