SOLR: фильтрация по дате - PullRequest
       4

SOLR: фильтрация по дате

4 голосов
/ 20 января 2020

Я индексирую много пользователей (более 50 миллионов) и их просмотров страниц в день, например:

{
  "id": 123,
  "name": "foo bar"
  "views_2020_01_01": 1,
  "views_2020_01_02": 2,
  "views_2020_01_03": 3,
  "views_2020_01_04": 4,
  "otherfield": "xxx",
  "yetanotherfield": "yyy",
  "gimmeanotherfield": "zzz",
  "otherfields.......": "....."
  ....
},
{
  "id": 124,
  "name": "bar baz"
  "views_2020_01_01": 4,
  "views_2020_01_02": 3,
  "views_2020_01_03": 2,
  "views_2020_01_04": 1,
  "otherfield": "xxx",
  "yetanotherfield": "yyy",
  "gimmeanotherfield": "zzz",
  "otherfields.......": "....."
  ....
}

Я храню данные о просмотрах за последние 2 года. Наш веб-интерфейс позволяет выбрать диапазон дат (например, 2019-06-01 до 2019-07-22)

. В этом случае, когда мы фильтруем show me users with more than 5 and less than 20 pageviews в этом диапазоне дат, я сделаю запрос:

{!frange l=5 u=11} sum(views_2019-06-01,views_2019-06-02,views_2019-06-03,...,views_2019-07-22)

Это довольно медленно. Мне интересно, если это просто плохая практика или у кого-нибудь есть лучший способ сделать это. Спасибо!

1 Ответ

0 голосов
/ 28 января 2020

У вас должно быть 2 набора, 1 для пользователей и 1 для просмотров страниц, затем используйте запрос соединения для получения данных. взгляните на эту статью Объединение коллекций в SOLR .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...