1

私は過去に Hibernate を使用したことがあり、ORM の使用に対する多くの人々の不満を共有しています。従来のデータベースはリレーショナルであるため、ORM には漏れやすい抽象化があります。私の時間の多くは、抽象化の詳細を理解するために費やされるので、良いパフォーマンスを達成することができます。

ただし、Hibernate Search は Lucene の上で動作します。Lucene には同じタイプのドキュメントのコレクションが含まれているため、リレーショナル データベースを使用する Hibernate と同じ問題は発生しない可能性があります。Hibernate Search はクリーンな抽象化を提供しますか? それとも、Hibernate Search は Hibernate+MySQL と同じ問題を抱えていますか?

生の Lucene の既存の実装から Hibernate Search に移行することを検討しています。

4

1 に答える 1

2

優れた抽象化とは、基礎となるライブラリによって対処されない問題を、機能セットをまったく、またはほとんど妥協せずに解決する抽象化です。Lucene の場合、次の問題が考えられます。

  • 指数分布、
  • 別の永続化されたデータ ソースとの同期、
  • ...

次に、最適な抽象化は、解決する必要があるこの問題によって異なります。

  • 単一のサーバーで逆インデックスを作成してクエリを実行できるようにしたい場合は、プレーンな Lucene を使用してください。Lucene は、すでに利用可能な最高の抽象化です。他の抽象化はオーバーヘッドを追加しますが、おそらくいくつかの機能を使用できなくなり、物事がはるかに簡単になりません。

  • 分散したい場合は、Solr または Elastic Search が大いに役立ちます。

  • フルテキスト機能を別の永続化されたデータ セットと統合する場合は、Hibernate Search または Compass が興味深い候補になる可能性があります。

于 2012-04-06T10:24:02.247 に答える