Я создаю кластер SOLR, где каждый файл solr соответствует данным о компании. Например, следующие атрибуты отслеживаются:Сохранение исторических атрибутов в одном документе SOLR
1. name
2. size
3. location
4. awards
5. profit
Моя проблема заключается в том, что я хочу, чтобы отслеживать исторические данные для атрибутов, которые могут изменяться (например, размер/награды). Я знаю, что простой способ сделать это - иметь документ в SOLR для каждого временного диапазона. Итак, если бы я хотел получить все компании, которые были под размером 50 с 2012 по 2013 год, это простой запрос SOLR. Тем не менее, я имею дело с почти 20 миллионами компаний. И использование вышеуказанной стратегии означает, что каждый раз, когда меняется один атрибут, мы дублируем этот документ - резко увеличивая количество документов в кластере solr.
Я пытаюсь придумать умный способ использования полей в SOLR, чтобы я мог отслеживать устаревшие атрибуты и их даты в основных компаниях документа. Но я не могу найти хороший способ сделать это. Я знаю, что это частично связано с тем, что эта проблема не в том, что SOLR был предназначен для хранения и хранения данных таким образом, что он неправильно нормализуется. Тем не менее, я просто ищу хороший способ избежать массового дублирования моих данных.
Ключ случай использования, чтобы иметь возможность выполнять запросы, как:
select all companies that were under size 50 from 2012 to 2013
Таким образом, каждый атрибут должен быть связан со значением, дату действительного и дату осуждается поле. Также значение атрибута и даты должны быть доступны для поиска.
Я хочу сделать что-то вроде этого:
{
"size":[
{
"date_deprecated": None,
"date_valid":"2015-01-01",
"value":"100"
},
{
"date_deprecated":"2014-12-31",
"date_valid":"2014-01-01",
"value":"50"
},
{
"date_deprecated":"2013-12-31",
"date_valid":"2013-01-01",
"value":"25"
}
]
}
Но очевидно, что не летает в ГУМЗ. Кроме того, атрибуты (поля) являются динамическими, так как я использую динамическую схему solr. Поэтому я не знаю, что все атрибуты.
Любые идеи?
Собираетесь ли вы _searching_ через эти исторические данные? Если нет, это не должно быть в Solr. –
@AlexandreRafalovitch Да. Я хотел бы иметь возможность искать и получать список всех компаний с определенным атрибутом, имеющим определенное значение между датой и датой. Используя приведенный выше пример, я хотел бы запросить SOLR и получить список всех компаний, которые были под размером 50 с 2012 по 2013 год – tknickman