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 "поставщик" во время запроса
это предполагает, что, хотя вы ищете одни и те же термины, вы ищете их как отдельные понятия.
исходя из этого и отсутствия общих полей, я бы рекомендовал начинать с отдельных коллекций.