有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Hibernate Search是Lucene的干净抽象吗?

我过去使用过Hibernate,我和许多人一样对使用ORM感到沮丧。由于传统数据库是关系型的,任何ORM都有一个漏洞百出的抽象。我的大部分时间都被用来理解抽象的细节,这样我就可以获得良好的性能

然而,Hibernate搜索在Lucene上运行。由于Lucene包含一组相同类型的文档,因此它可能不像Hibernate那样有关系数据库问题。Hibernate搜索是否提供了一个干净的抽象,或者Hibernate搜索与Hibernate+MySQL存在相同的问题

我正在考虑从原始Lucene中的现有实现转移到Hibernate搜索


共 (1) 个答案

  1. # 1 楼答案

    一个好的抽象是一个抽象,它解决了一个底层库没有解决的问题,并且在功能集上没有或几乎没有妥协。就Lucene而言,这些问题可能是:

    • 指数分布
    • 与另一个持久化数据源同步

    那么,最佳的抽象取决于您需要解决的问题:

    • 如果你只想在一台服务器上建立一个反向索引并进行查询,那么就使用普通的Lucene。Lucene已经是可用的最好的抽象。任何其他抽象都会增加开销,同时可能会阻止您使用某些功能,使事情变得更加简单

    • 如果你想进行分布式搜索,Solr或Elastic Search会给你很大帮助

    • 如果您想将全文功能与另一个持久化数据集集成,那么Hibernate Search或Compass可能是一个有趣的候选者