SOLR: можно ли индексировать несколько пар timestamp: value для одного документа? - PullRequest
1 голос
/ 28 сентября 2011

Возможно ли в solr индексировать пары ключ-значение для одного документа, например:


Идентификатор документа: 100

2011-05-01,20

2011-08-23,200

2011-08-30,1000


Идентификатор документа: 200

2011-04-23,10

2011-04-24,100


, а затем запрос документов с определенной агрегацией значений за определенный промежуток времени, то есть «дать мне документы с суммой (значением)> 0 в период с 2011-08-01 по 2011-09-01», вернет документ с идентификатором 100 в примере данных выше.

1 Ответ

0 голосов
/ 28 сентября 2011

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

1) закодировать "id "и" метка "в значении поля;грань на нем;требовать, чтобы клиенты знали, как декодировать.Это очень хорошо работает для простых вещей, где сопоставления меток id => никогда не меняются и их легко кодировать (например, «01234: Chris Hostetter»).Это ужасный подход, когда отображения id => меток меняются с любой частотой.

2) иметь отдельный тип документа «метаданные», по одному на «вещь», на который вы фасетируете, содержащий поля для идентификатора и метки (и, вероятно, поле doc_type, чтобы вы могли отличить его от основногоdocs), затем, как только вы выполнили основной запрос и получили результаты обратно в виде идентификатора, вы можете запросить эти идентификаторы, чтобы получить соответствующие метки.это работает очень хорошо, если метки когда-либо изменяются (просто переиндексирует соответствующий документ метаданных) и имеет дополнительный бонус, который вы можете хранить дополнительные метаданные в каждом из этих документов, и во многих случаях использования для представления начального интерфейса «обзора», вы можетеиногда обходится без дешевого поиска всех документов метаданных (или всех документов метаданных, соответствующих определенным критериям) вместо дорогостоящего фасетного запроса по всем вашим основным документам.

...