2016-01-07 5 views
0

Я просто хочу знать, что такое именно эластичный поиск. Говорят, что это помогает искать данные, но когда я вижу некоторые веб-семинары, мне кажется, что мне приходится реплицировать свои данные в виде Эластичного хранилища данных ... что не означает, что я очень отпишусь. Таким образом, все изменения, сделанные в левой руке, должны быть указаны с правой стороны, а данные, возвращаемые Elastic Search, могут быть не в правильном формате. Может ли Elastic Search напрямую искать в моей базе данных?Что такое эластичный поиск

Он предназначен для использования с базой данных графиков Neo4J. Кто-то уже сделал что-то подобное? Это заменяет только запросы Cypher?

Благодарим за советы, помогая мне понять, что Elastic Search действительно помогает в нашем проекте.

+1

Imagine ElasticSearch нравится _is_ база данных. – Philipp

+0

Elasticsearch отлично подходит для полнотекстового поиска. Это мост, созданный графиком между Neo4j и Elasticsearch для поиска и добавления релевантности в зависимости от запроса Neo4j. См. Https://github.com/graphaware/neo4j-to-elasticsearch Я только вижу введение об этом продукте. – Quentin

+0

Вы не должны видеть Elasticsearch как базу данных, а как индекс, который поможет вам быстро получить доступ к узлу, который вы ищете в Neo4j. – Quentin

ответ

2

Elasticsearch является базой данных, однако это не реляционная база данных, как вы можете привыкнуть. Это база данных NoSQL.

Вы вставляете документы JSON в индекс. Вы запрашиваете этот индекс для поиска документов, соответствующих конкретному критерию.

Он также распределен по шинам и узлам, что придает ему устойчивость и масштабируемость, а также - если вы настроили его правильно - производительность.

Это означает, что он действительно хорош в запросах базы данных стиля поисковой системы, но поскольку он не является реляционным, он не может легко выполнять эквивалент операции SQL JOIN.

Одним из примеров использования является logstash и kibana - известный как стек ELK - где журналы системных событий (syslog, httpd logs и т. Д.) Обрабатываются logstash для анализа метаданных - например, источника журнала, реферера, URL-адреса, идентификатор сеанса и т. д. - и затем вставляется в поиск elastics.

Поскольку каждое событие является самодостаточной информацией, это то, что делает elasticsearch особенно хорошо.

Вы можете использовать Kibana в качестве движка визуализации для отображения журналов, но и выполнять анализ - самые хитовые страницы, географическое распределение запросов, поступающих рефереры, распределение на основе времени запросов и т.д.

Но это также сопоставляет эти журналы, поэтому, если вы запускаете действительно большой географически распределенный веб-сайт с несколькими узлами веб-сервера - или, может быть, у вас просто много серверов в вашем компьютерном зале, и вы хотите суммировать системные журналы - вы можете накормить всю партию в эластичный поиск ,

Дизайн такой, что он хорош при обработке и анализе данных в режиме реального времени. Он также отлично подходит для моделей данных «стиль форума», поскольку по существу все, что вы делаете, это запрос списка сообщений с определенным именем форума и поиск ответов на определенный родительский узел, но они являются отдельными «документами».

Итак, вы, вероятно, можете использовать его для поиска существующей базы данных, но вам придется подумать о своей модели данных - вы не можете просто перевести традиционную реляционную модель, вам придется ее сгладить. Денормализация является чем-то вроде греха в терминах РСУБД, но на самом деле это очень хорошо для поисковых систем, потому что вы можете выполнять запросы параллельно более эффективно.

+0

Спасибо за ваше объяснение, это помогло мне подтвердить, что я думал! – user954156

1

Базы данные не могут быть оптимизированы для всех случаев использования, но, к счастью, есть много баз данных, доступных, чтобы мы могли выбрать лучший вариант для каждой задачи.

Elasticsearch оптимизирован для:

  • Фильтрация документов (точное совпадение)
  • Поиск ранжирование документов (релевантность поисковых терминов)
  • Агрегирование результатов (сумм, различных подсчетов, процентили,. ..)

Neo4j оптимизирован для:

  • обхода графа (естественно)
  • Высокая производительность при работе на «локальные» граф окрестностях (контекст)

На самом деле обе базы данные используют ту же базовую библиотеку Lucene, чтобы «Index» данные, которые будут найдены позже.

Смежные вопросы