2012-04-19 5 views
1

Я думаю об использовании solr для реализации пространственной и текстовой индексации. На данный момент у меня есть записи, входящие в базу данных MYSQL, а также solr. Когда solr запускается, он считывает все данные из MYSQL. По мере ввода новых записей мои веб-серверы записывают их в MYSQL и в то же время добавляют документы в solr. Все больше и больше кажется, что моя реализация MYSQL просто становится хранилищем только для записи (более или менее, резервной копией данных в solr) - все чтение записей выполняется с помощью запросов solr. Действительно, единственными данными, считываемыми с MYSQL, являются данные пользователя, которые не нужно индексировать/искать.С Solr, нужен ли мне SQL-db?

Несколько вопросов:

  • ли мне действительно нужна реализация MYSQL или могу я просто хранить все свои данные в Solr?
  • Если только solr, каковы риски, связанные с этим решением?

Спасибо!

+0

Я не понимаю ... – threejeez

ответ

3

Почти всегда, да. Это не обязательно должна быть база данных, но вы должны сохранить исходные данные где-то вне Solr, если вы измените, как вы индексируете данные в Solr. В отличие от большинства баз данных, в которых Solr нет, Solr не может просто переиндексировать себя. Вы могли бы гипотетически сконфигурировать вашу схему так, чтобы все ваши исходные данные были помечены как «сохраненные», а затем, возможно, на дамп CSV и переиндексированы таким образом, но я бы не рекомендовал этот подход.

Бесстыдный штекер: Для получения любой информации об использовании Solr, я рекомендую my book.

2

Я рекомендую отдельный репозиторий. MySQL - один из вариантов. Некоторые используют файловую систему.

Вам часто требуется другая схема для поиска, чем для хранения. Это легко сделать с отдельным хранилищем.

При изменении схемы Solr необходимо перезагрузить контент. Выгрузка всего содержимого из Solr может быть медленной. Если он уже находится в отдельном репозитории, вам не нужно выгружать его из Solr, вы можете перезаписать то, что есть.

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

+0

Конечно, он не обязательно должен быть реляционной базой данных. Выбор должен зависеть в первую очередь от структуры данных и требований к масштабированию. Есть множество новых баз данных NoSQL, которые обрабатывают различные архитектуры данных на основе распределенных: document, column, hash-map, graph, ... –

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