2009-06-16 5 views
1

Я рассматриваю использование Apache solr для индексирования данных в новом проекте. Данные из различных независимых типов, что означает, что есть, напримерИспользование solr для индексирования данных разных типов

  • растительных
  • животных
  • автомобилей
  • компьютеры

индексировать. Должен ли я использовать разные индексы для каждого из типов или имеет смысл использовать только один индекс? Как использование многих индексов влияет на производительность? Или есть ли другая возможность достичь этого?

Спасибо.

ответ

7

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

Во-вторых, насколько важна производительность - индексирование всего этого, вероятно, приведет к ухудшению производительности, но степень зависит от того, сколько данных есть и насколько сложны запросы.

В-третьих, вам нужно запросить несколько типов данных в том же поиске? Если это так, индексирование всего вместе может быть удобным способом этого. Технически это может быть достигнуто с помощью отдельных индексов, но получение наиболее релевантных результатов для запроса может быть проблемой (а не тем, что его еще нет)

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

Еще одна вещь, которую следует учитывать - это идентификаторы - все ли разные объекты имеют уникальный идентификатор для всех типов? Если нет, вам, вероятно, понадобится создать это, если вы хотите проиндексировать их вместе.

+0

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

+0

У меня вопрос. У нас есть ближе к 10 приложениям (приблизительно 10000 строк данных для каждого приложения с 10 столбцами, один или два столбца будут большими полями txt), и мы также хотим индексировать все наши документы с общих дисков, это может быть как 5000 слов/pdf документы). Мы хотим создать глобальный поиск, где вы можете искать все, что хотите, и результаты можно классифицировать по фасеткам (приложениям) или модифицированному фильтру диапазона дат и т. Д. Мы также будем использовать этот поиск в каждом из этих отдельных приложений, где пользователь может искать по txt и другие поля, такие как измененная дата, измененный пользователь и т. д. Какой из этих двух вариантов лучше? –

+0

Из исследования, которое я сделал, похоже, что у людей намного больше 10 ядер, и они управляют ими (я не знаю, насколько хорошо). Вот ссылка [http://lucene.472066.n3.nabble.com/shareSchema-quot-true-quot-location-of-schema-xml-td3297392.html) –

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