Elasticsearch является базой данных, однако это не реляционная база данных, как вы можете привыкнуть. Это база данных NoSQL.
Вы вставляете документы JSON в индекс. Вы запрашиваете этот индекс для поиска документов, соответствующих конкретному критерию.
Он также распределен по шинам и узлам, что придает ему устойчивость и масштабируемость, а также - если вы настроили его правильно - производительность.
Это означает, что он действительно хорош в запросах базы данных стиля поисковой системы, но поскольку он не является реляционным, он не может легко выполнять эквивалент операции SQL JOIN.
Одним из примеров использования является logstash и kibana - известный как стек ELK - где журналы системных событий (syslog, httpd logs и т. Д.) Обрабатываются logstash для анализа метаданных - например, источника журнала, реферера, URL-адреса, идентификатор сеанса и т. д. - и затем вставляется в поиск elastics.
Поскольку каждое событие является самодостаточной информацией, это то, что делает elasticsearch особенно хорошо.
Вы можете использовать Kibana в качестве движка визуализации для отображения журналов, но и выполнять анализ - самые хитовые страницы, географическое распределение запросов, поступающих рефереры, распределение на основе времени запросов и т.д.
Но это также сопоставляет эти журналы, поэтому, если вы запускаете действительно большой географически распределенный веб-сайт с несколькими узлами веб-сервера - или, может быть, у вас просто много серверов в вашем компьютерном зале, и вы хотите суммировать системные журналы - вы можете накормить всю партию в эластичный поиск ,
Дизайн такой, что он хорош при обработке и анализе данных в режиме реального времени. Он также отлично подходит для моделей данных «стиль форума», поскольку по существу все, что вы делаете, это запрос списка сообщений с определенным именем форума и поиск ответов на определенный родительский узел, но они являются отдельными «документами».
Итак, вы, вероятно, можете использовать его для поиска существующей базы данных, но вам придется подумать о своей модели данных - вы не можете просто перевести традиционную реляционную модель, вам придется ее сгладить. Денормализация является чем-то вроде греха в терминах РСУБД, но на самом деле это очень хорошо для поисковых систем, потому что вы можете выполнять запросы параллельно более эффективно.
Imagine ElasticSearch нравится _is_ база данных. – Philipp
Elasticsearch отлично подходит для полнотекстового поиска. Это мост, созданный графиком между Neo4j и Elasticsearch для поиска и добавления релевантности в зависимости от запроса Neo4j. См. Https://github.com/graphaware/neo4j-to-elasticsearch Я только вижу введение об этом продукте. – Quentin
Вы не должны видеть Elasticsearch как базу данных, а как индекс, который поможет вам быстро получить доступ к узлу, который вы ищете в Neo4j. – Quentin