Как эффективно хранить повторяющиеся данные в Solr, не влияя на производительность - PullRequest
0 голосов
/ 06 января 2019

Я храню структурированные данные в Solr.

[{
    "Product": "Boomerang"
    "Price": 42,
    "Stores": ["Sport Shack", "Joe's Sport Supplies", "Sports and More", "The Outdoor Shop"]
},
{
    "Product": "Juggling Chainsaws"
    "Price": 94,
    "Stores": ["Sport Shack", "Joe's Sport Supplies", "Sports and More","The Outdoor Shop"]
},
{
    "Product": "Chainsaw"
    "Price": 5,
    "Stores": ["Labor Store", "The Outdoor Shop", "Fish n Woodchips"],
}]

Существуют тысячи различных продуктов, которые имеют одинаковые значения для поля «Магазины».

Есть ли способ устранить необходимость повторного хранения этих же значений, не влияя на производительность поиска по таким запросам, как: «Найти бензопилу из магазина труда»

Это то, о чем я думаю:

[{
    "Product": "Boomerang"
    "Price": 42,
    "StoreGroup": "NoveltySportsStores",
},
{
    "Product": "Juggling Chainsaws"
    "Price": 94,
    "StoreGroup": "NoveltySportsStores",
},
{
    "Product": "Chainsaw"
    "Price": 5,
    "StoreGroup": "OutdoorsStores"
},
{
    "NoveltySportsStores": ["Sport Shack", "Joe's Sport Supplies", "Sports and More", "The Outdoor Shop"]
},
{
    "OutdoorsStores": ["Labor Store", "The Outdoor Shop", "Fish n Woodchips"]
}]

Edit: Пример полностью составлен. Для моего реального варианта использования группы будут оставаться постоянными и повторяться примерно 5000 раз в каждой, в общей сложности около 50000 групп.

1 Ответ

0 голосов
/ 06 января 2019

вы думаете о Solr / Lucene как о РСУБД, а это не так. Даже если это выглядит для вас слишком много повторений и потери ресурсов, это не так. Первый способ - это естественный и лучший способ индексировать ваши данные.

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

...