В Интернете я не нашел глубокого объяснения о сравнении ElasticSearch и графических баз данных.
Оба оптимизированы для прохождения данных.
ElasticSearch, похоже, оптимизирован для аналитики.
Однако Neo4j также основан на Lucene для управления индексами и некоторыми полнотекстовыми функциями.
Зачем мне использовать ElasticSearch, если я уже использую базу данных графа?
В моем случае я использую Neo4j для создания социальной сети.
Какую реальную выгоду может принести ElasticSearch?
ОБНОВИТЬ ----------
Я только что нашел этот абзац:
Есть множество случаев, когда эластичный поиск полезен. Некоторые варианты использования более четко требуют этого, чем другие. Ниже перечислены некоторые задачи, для которых эластичный поиск особенно хорошо подходит.
- Поиск большого количества описаний продуктов для лучшего соответствия конкретной фразе (скажем, «нож шеф-повара») и возвращение лучших результатов
- Учитывая предыдущий пример, разбиваем различные отделы, где появляется «нож шеф-повара» (см. «Гранение» далее в этой книге)
- Поиск текста по словам, которые звучат как «сезон»
- Автоматическое заполнение поля поиска на основе частично набранных слов на основе ранее выполненных поисков с учетом неправильного написания
- Хранение большого количества полуструктурированных (JSON) данных в распределенном режиме с заданным уровнем избыточности на кластере машин
Следует, однако, отметить, что, несмотря на то, чтоasticsearch хорош в решении вышеупомянутых проблем, он не является лучшим выбором для других. Это особенно плохо при решении задач, для которых оптимизированы реляционные базы данных. Проблемы, такие как перечисленные ниже.
- Подсчет, сколько предметов осталось в инвентаре
- Вычисление суммы всех позиций по всем счетам, отправленным за данный месяц
- Выполнение двух операций транзакционно с поддержкой отката
- Создание записей, которые гарантированно будут уникальными для нескольких заданных терминов, например номер телефона и добавочный номер
- Elasticsearch, как правило, отлично подходит для предоставления приблизительных ответов на основе данных, таких как оценка результатов по качеству. В то время как эластичный поиск может выполнять точные сопоставления и статистические вычисления, его основная задача поиска является по своей природе приблизительной задачей.
- Поиск приблизительных ответов - это свойство, которое отделяет эластичный поиск от более традиционных баз данных. При этом традиционные реляционные базы данных превосходны по точности и целостности данных, для чего у эластичного поиска и Lucene мало положений.
Могу ли я утверждать, что если мне не нужны приблизительные ответы, то ElasticSearch будет бесполезен по сравнению с уже используемой базой данных графиков?