В моих запросах Solr я хочу отсортировать последние просмотренные документы по верху («доступ» означает открытие пользователем). Ни один другой критерий поиска не имеет для меня значения: из документов с текстом, соответствующим запросу, я хочу их в порядке недавнего использования. Я могу думать только о двух способах сделать это:
1) Включите поле даты «последний доступ» в каждом документе, чтобы сортировать по Solr. Мне сказали, что поля Trie Date можно сортировать очень быстро. Конечно, проблема в том, чтобы поддерживать поле в актуальном состоянии, что потребовало бы сохранения текста каждого документа, чтобы я мог удалить и повторно добавить любой документ с обновленным полем «последний доступ». Изменяемые поля устранят это, но Lucene / Solr по-прежнему не предлагает изменяемые поля.
2) Кроме того, можно хранить изменяемые даты «последнего доступа» и обновлять их в другой базе данных. Это потребовало бы, чтобы Solr возвратил полный список соответствующих документов, который мог бы быть сотнями тысяч документов. Этот огромный список идентификаторов документов будет сопоставлен с датами в БД, а затем отсортирован. Это будет работать нормально для необычных поисковых терминов, но не для общих, общих поисковых.
Таким образом, компромисс между 1) размером индекса плюс стоимость обработки каждый раз, когда к документу обращаются, и 2) большими накладными расходами запроса, особенно для несфокусированных поисковых терминов
Есть ли у меня альтернативы?