我想查询与给定实体(相同类型)相似的实体。相似度(在最简单的情况下)定义为成员集合中相同项目的数量。
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 之类的东西持开放态度,在这种情况下,问题是,只为这种情况引入它是否值得?我可能不会在这个项目中进行其他搜索。