Мы планируем реализовать сегментирование для нашей базы данных и также хотим обеспечить поиск сегментов Solr. (Для запросов, использующих «нравится», «упорядочить по», «сгруппировать по» и т. Д.)
Какой инструмент лучше всего подходит для такого дизайна?
Я проверил пару из них и не могу определиться ни с одним из них.
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 в HTTP-запросы получения / размещения SolrCloud / ElasticSearch.