Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: user2250246Ответов: 2

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

  • Этот вопрос чем-то напоминает мне twitter.com/codinghorror/status/347070841059692545 Lukas Eder 31.10.2013

hibernatesolrquerydslhibernate-search

Ответы

Ответ 1 · Timo Westkämper

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

Ответ 2 · Sanne

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

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы