2013-07-24 4 views
0

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

Так пример

Скажем, я хочу, чтобы хранить два типа записей клиентов, которые будут иметь следующие поля ИМЯ АДРЕС ИМЕЕТ KIDS

И магазин ИМЯ АДРЕС ТИП РАЗМЕР

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

Заранее спасибо

ответ

2

Lucene не имеет схемы, так что вы вообще можете сделать это. Я бы не советовал объединять клиентов и магазины вместе - как вы собираетесь их разделить в наборе результатов? Не могли бы вы объединить клиентов и магазины в единую таблицу БД? Solr может помочь вам во многих отношениях. Например, вы можете поместить различные типы данных в разные ядра, тем самым имея различную схему и чистое разделение. несколько ядер могут сосуществовать на одном сервере SOLR. SOLR также может решить многие другие проблемы для вас. Например. разделение данных (окантовка), балансировка нагрузки путем добавления нескольких узлов, отказоустойчивости и т. д.

+0

ОК, это полезно знать. Насколько сложно будет использовать API Lucene для моего кода для настройки SOLR. – TheCodeNovice

+0

Это потребует определенных усилий. Из .Net вы можете использовать библиотеку SolrNet, которая довольно красива и настраиваема, или Http или Streaming API. В любом случае, я советую перейти к Java-версии Lucene, потому что Lucene.Net далеко позади. Последняя версия Lucene намного быстрее, размер индекса меньше. – lexk

0

Достаточно просто поместить различные типы данных в 1 ядро ​​Solr.

Вы должны помнить о наличии идентификаторов, которые действительно уникальны (UUID, или что-то вроде TYPE-PREFIX_YOUR-ID>), и имеют 1 общее поле типа, которое вы можете использовать для фильтрации.

Если вы указали 2 обработчика в solrconfig, вы даже не заметите, что работаете с ядрами с двумя типами данных (эта часть является необязательной).

Если вы это сделаете (2 типа данных в 1 ядре), зависит от вашего варианта использования.

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