Обратный индекс и запрос Solr / Lucene поддерживают подмножество функций СУБД, то есть фильтрацию, сортировку, групповую передачу, разбиение по страницам. В этом смысле он очень близок к базе данных nosql, поскольку он также не поддерживает транзакции и присоединяется.
С такой структурой, как Hibernate-Search , можно отображать даже сложные объекты в индекс и выполнять основные операции CRUD, поддерживая полнотекстовый поиск.
Вопросы:
1) Запись пропускной способности
Из моего прошлого опыта пропускная способность записи индекса Lucene намного ниже, чем в СУБД
2) Скорость запроса
Скорость запроса для индекса Lucene должна быть сопоставима, если не быстрее, из-за обратного индекса.
3) Масштабируемость
Может быть решен с использованием репликации или Solr-cloud .
4) Способность обрабатывать большой набор данных
Я использовал lucene index с 15M + документом на одной JVM без каких-либо проблем с производительностью.
Справочная информация:
В настоящее время я использую MongoDB с Solr, и он работает достаточно хорошо. Тем не менее, это не так просто, как хотелось бы, потому что:
- Синхронизация индексов Монго и Солра (нетривиальная задача)
- Преобразование между объектом Java <-> mongo <-> solr ( SpringData и SolrJ помогает, но все же не очень хорошо).
- Зачем использовать две "персистентные" технологии, если одна будет делать
Из проведенного мною небольшого теста я не нашел никаких технических препятствий, которые бы помешали мне использовать Solr / Lucene в качестве настойчивости. Однако я также не хочу совершать такой радикальный рефакторинг без дополнительной информации. Мне также известны такие проекты, как Solandra , в которых предпринимались попытки объединить NoSQl и Solr, но они, похоже, недостаточно зрелы.
Вопрос
Таким образом, для приложений, в которых полнотекстовый поиск является основным (но не единственным) требованием, возможно ли затем отказаться от традиционного (RDBMS) и современного (NoSQL) хранилища данных?
Отличный справочник Благодаря ратикулину
Atlassian (Jira) - индексирование универсальных данных Lucene