Могу ли я использовать MongoDB для хранилища содержимого Java?

#java #mongodb #jcr

#java #mongodb #jcr

Вопрос:

Могу ли я использовать MongoDB для хранения файла JCR (XML-файла)?

Ответ №1:

Следующая версия Apache JackRabbit с кодовым именем Oak включает хранилище на основе Mongo — микроядро в терминах Oak. Вы можете увидеть некоторые подробности в OAK-619: реализация MongoMK без блокировок.

Ответ №2:

Нет — MongoDB не использует традиционную блокировку, которая, насколько я знаю, требуется для JCR. JCR также включает полнотекстовый поиск в комплекте с Lucene, В то время как вы можете выполнять полнотекстовый поиск в Mongo (используя multikeys), У вас могут отсутствовать некоторые другие функции полнотекстовых поисковых систем (поиск, ранжирование и т. Д.).

В конце концов, JCR действительно предназначен для использования с СУБД, а также с полнотекстовым индексом.

Комментарии:

1. На самом деле MongoDB обеспечивает стемминг, ранжирование, удаление стоп-слов и т. Д. Для получения дополнительной информации см. docs.mongodb.org/manual/core/index-text . Конечно, Lucene (и все его производные, такие как Solr) намного мощнее (например, вы можете создавать свои собственные модули и т. Д.).

2. Брайан, при всем моем уважении, каждое предложение вашего ответа неверно. JCR может работать с файловой системой, или с mongo, или поверх СУБД в качестве серверной части. Ниже приведен мой код, который является инициализатором JCR, который работает как для MongoDB, так И для СУБД: github.com/Clay-Ferguson/meta64/blob/master/src/main/java/com /…

Ответ №3:

Да, Apache Jackrabbit Oak полностью поддерживает MongoDB, и mongo на самом деле является наиболее производительным бэкэндом, который вы можете использовать. Вот пример того, как выполняется инициализация репозитория meta64:

https://github.com/Clay-Ferguson/meta64/blob/master/src/main/java/com/meta64/mobile/repo/OakRepository.java