0
我想查询与给定实体(相同类型)相似的实体。 相似性(在最简单的情况下)定义为成员集合中相同项目的数量。JPQL/HQL:通过与样本的相似性对实体进行排序?
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这样的事情开放,在这种情况下,问题是,是否仅仅为了这种情况而付出代价?我不会在这个项目中再次搜索。
我会使用Hibernate Search,它是为此设计的,比超级连接解决方案效率高很多。同样重要的是,您可以获得自动标记功能和自然语言处理功能,以更好地控制相似性功能。 – Sanne 2014-09-16 17:49:07