我们计划为我们的数据库实现分片,并且也希望为分片提供 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)
所以基本上,我的问题归结为:
如何将 QueryDSL 与一些支持开箱即用的分片的 lucene 产品一起使用。(注意:我对 SolrCloud 或 ElasticSearch 提供的默认分片策略很满意)。
我不想编写一个转换器来将 QueryDSL 查询转换为 SolrCloud/ElasticSearch 的 HTTP get/put 请求。