Я пытаюсь найти хороший способ реализовать универсальный API поиска в Java, который позволит моим пользователям выполнять поиск в бэкэнд-хранилище без необходимости знать, что это за бэкэнд-технология, и, таким образом, если в будущем мы поменяем поставщиков Я могу переопределить основную логику без необходимости перекодировать API. Хранилище внизу может быть реляционной базой данных или хранилищем документов, таким как SOLR, CouchDB, MongoDB и т. Д. Он должен поддерживать все типичные требования поиска, такие как подстановочные знаки, диапазоны, побитовые операторы и т. Д.
Существуют ли стандартные способы решения этой проблемы?
Будет ли JPA моей лучшей ставкой? Будет ли он делать все, что мне нужно, включая нереляционные базы данных?
Заранее спасибо!