特定のエンティティ (同じタイプ) に類似したエンティティを照会したい。類似度は (最も単純なケースでは) メンバー コレクション内の同じアイテムの数として定義されます。
JPQL/HQL クエリはどのようになりますか?
私が試したこと:
SELECT wuSimilar, COUNT(*) AS score FROM WorkUnit wuBase
LEFT JOIN wuBase.tags AS wubTags
LEFT JOIN WorkUnit wuSimilar ON wubTags IN wuSimilar.tags
WHERE wuBase = :base
GROUP BY wuSimilar
ORDER BY score DESC
これは基本的に検索であるため、Hibernate Search を使用できますが、やり過ぎではないかどうかはわかりません。あるいは、ElasticSearch のようなものにもオープンです。このプロジェクトでは、おそらく別の検索はありません。