Solr single index vs Solr multi core

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

  • invoiceDate
  • для duedate
  • invoiceSummary
  • billingContact
  • invoiceLineItems
  • Примечания

предположим, вы также хотите индексировать детали продуктов, вы бы создали новый тип документа со схемой следующим образом;

  • productCode
  • элемент productdescription
  • sellingPrice
  • buyingPrice
  • onHand
  • avgCost
  • Примечания

и создать новое ядро в Solr для индексации документов продукта? Или вы объедините транзакцию и продукт в одну схему следующим образом;

  • invoiceDate
  • для duedate
  • invoiceSummary
  • billingContact
  • invoiceLineItems
  • productCode
  • характеристика намечаемой к выпуску
  • sellingPrice
  • buyingPrice
  • onHand
  • avgCost
  • Примечания

и иметь только одно ядро индексирования выше doucment, вместо того, чтобы иметь ядро" счет-фактура "и ядро" продукт " индексирования двух разных документов?

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

"Поиск счетов-фактур для ключевого слова "Джон", поля для поиска являются "billingContact", "invoiceSummary", "notes". Увеличьте поле "billingContact" во время запроса. Также найдите товар для 'John', поля для поиска: 'productDescription', 'supplier', 'notes'. Boost "поставщик" во время запроса. Возвращают только 100 счетов-фактур и 100 товаров."

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

мои опасения в все в одном указателе;

1) большой размер индекса, например: 50 миллионов счетов-фактур + 50 миллионов продуктов в одном индексе

2) Переиндексирование индекса такого размера.

3) Настройка индекса: не проще ли настроить/настроить каждый отдельный индекс для обслуживания конкретных ожидаемых результатов поиска, а не пытаться сделать это в одном индексе?

4) мы решили индексировать контактные данные биллинга, а также в будущем. Что добавит больше полей для индексирования и свой вклад в мои проблемы в пунктах 1) и 2).

1 ответов


возврат только 100 счетов-фактур и 100 товаров.

и

увеличить поле "billingContact" во время запроса Boost "поставщик" во время запроса

это предполагает, что, хотя вы ищете одни и те же термины, вы ищете их как отдельные понятия.

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