Solr, Hibernate и QueryDSL с сегментированием

Мы планируем реализовать сегментирование для нашей базы данных и также хотим обеспечить поиск сегментов 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.


person user2250246    schedule 30.10.2013    source источник
comment
Этот вопрос чем-то напоминает мне twitter.com/codinghorror/status/347070841059692545   -  person Lukas Eder    schedule 31.10.2013


Ответы (2)


Querydsl имеет прямую поддержку Lucene и Hibernate Search. Для Solr и ElasticSearch вам нужно будет использовать специальные языки запросов Solr и ElasticSearch.

person Timo Westkämper    schedule 31.10.2013
comment
Привет, Тимо, мне очень нравится QueryDSL. Поэтому я бы тоже хотел использовать его с Solr / ElasticSearch. Вы знаете, есть ли у QueryDSL какие-либо планы по поддержке этих двух в ближайшем будущем? Я не эксперт в этом вопросе, но если Lucene поддерживается QueryDSL, тогда можно легко поддерживать и Solr. Кроме того, что могло бы быть программным обеспечением, подобным QueryDSL, которое можно использовать с Solr? - person user2250246; 31.10.2013
comment
Не могли бы вы опубликовать этот вопрос в группе Google Querydsl? Возможно, это лучшее место для обсуждения вариантов реализации. - person Timo Westkämper; 31.10.2013

Для записи, Hibernate Search действительно обеспечивает прозрачное сегментирование, поэтому сортировка, распределенная по нескольким сегментам, не является проблемой.

Рад сообщить, что теперь мы также поддерживаем Elasticsearch:

И Solr придет в будущем (помощь добро пожаловать!); идея состоит в том, чтобы предоставить людям безупречную интеграцию с Hibernate ORM, красивым и стабильным API, в то время как выбор использования экземпляра Lucene локально, а не удаленного Solr или Elasticsearch, является ортогональным аспектом.

person Sanne    schedule 27.05.2016