1

データベースにシャーディングを実装する予定であり、Solr 検索もシャードに提供したいと考えています。(「like」、「order by」、「group by」などを使用するクエリの場合)

この種の設計に最適なツールはどれですか?

私はこれらのいくつかをチェックしましたが、それらのいずれかを決定することはできません.

1) Hibernate Shards - Hibernate のメイン ページに明示的にリストされていますが、積極的にサポートされているようには見えません。

2) SolrJ - 良さそうに見えますが、QueryDSL クエリを Solr クエリに変換するにはどうすればよいですか?

3) SolrCloud - SolrJ と同じ問題

4) Hibernate Search - QueryDSL を使用できますが、この場合は Lucene がライブラリとして使用されるため、シャーディング機能を自分で管理する必要があります。したがって、すべてのシャードには独自の Lucene ハンドルがあり、手動でシャードを認識させるのは面倒です (たとえば、複数のシャードからの「順序付け」結果をマージする場合。SolrCloud はこれを自動的に行うと思います)。

5) Elasticsearch - SolrCloud (別名 Solr 4.0) と非常によく似ています。

つまり、基本的に、私の質問は次のようになります。

追加設定なしでシャーディングをサポートする一部の lucene 製品で QueryDSL を使用するにはどうすればよいですか。(注: SolrCloud または ElasticSearch によって提供されるデフォルトのシャーディング戦略に満足しています)。

QueryDSL クエリを SolrCloud/ElasticSearch の HTTP get/put リクエストにモーフィングするためのコンバーターを書きたくありません。

4

2 に答える 2

0

Querydsl は、Lucene および Hibernate Search を直接サポートしています。Solr および ElasticSearch の場合、Solr および ElasticSearch 固有のクエリ言語を使用する必要があります。

于 2013-10-31T08:39:28.297 に答える
0

記録として、Hibernate Search は透過的なシャーディングを提供するため、複数のシャードに分散されたソートを実行しても問題ありません。

現在、Elasticsearch もサポートしています。

そして、Solr は将来登場します (ヘルプ歓迎!)。Solr や Elasticsearch をリモートで使用するのではなく、Lucene インスタンスをローカルで使用するという選択は、直交する側面である一方で、優れた安定した API である Hibernate ORM との完璧な統合を人々に提供することを目的としています。

于 2016-05-27T14:52:04.853 に答える