Каковы некоторые стратегии обновления изменчивых данных в Solr? - PullRequest
1 голос
/ 22 сентября 2011

Какие существуют стратегии для обновления изменчивых данных в Solr? Представьте себе, если вам нужно смоделировать видеоданные YouTube в индексе Solr: как бы вы обновляли данные «просмотров», не перегружая Solr обновлениями?

Я бы подумал, что лучше всего было бы хранить данные «представлений» в другом хранилище данных (например, MongoDB или Redis), которое лучше обрабатывает быстрые обновления.

Но каков наилучший способ периодически обновлять индекс с этими данными? Будет ли дельта-импорт иметь смысл в этом контексте? Что делает дельта-импорт в Solr с точки зрения производительности для выполнения запросов?

Ответы [ 3 ]

1 голос
/ 23 сентября 2011

Сначала нужно определить «свежий».

"свежие" 1 мс? Если так, то к тому времени, когда значение (визуализированный html) попадает в браузер, оно больше не обновляется из-за задержки в сети. Это действительно имеет значение? В подавляющем большинстве случаев нет настоящих результатов в реальном времени.

Более распространенный лимит - 1 с. В этом случае Solr может справиться с этим с помощью RankingAlgorithm (плагин) или мягких фиксаций (в настоящее время доступно только в стволе Solr 4.0).

«Дельта-импорт» - это термин из DataImportHandler, который не имеет особого внутреннего значения. С точки зрения сервера Solr, есть только добавления документов, не имеет значения, откуда они берутся или набор документов представляет собой «целый» набор данных или нет.

Если вы хотите, чтобы элемент был проиндексирован в течение 1 с после его создания / изменения, то просто сделайте это, добавьте его в Solr сразу после его создания / изменения (например, с помощью хука в вашем DAL). Это должно быть сделано асинхронно, с использованием RA или мягких фиксаций.

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

Как насчет использования поля внешнего файла?
Это помогает вам хранить данные вне индекса в отдельном файле, который вы можете периодически обновлять без каких-либо изменений в индексе.

Для таких данных, как загрузки, просмотры, ранги, которые быстро меняются, это может быть хорошим вариантом.
Подробнее @ http://lucene.apache.org/solr/api/org/apache/solr/schema/ExternalFileField.html

Это имеет некоторые ограничения, поэтому вам нужно будет проверить в зависимости от ваших потребностей.

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

Возможно, вас заинтересует так называемый «поиск почти в реальном времени», или NRT, теперь доступный на стволе Solr, который предназначен для решения именно этой проблемы. См. http://wiki.apache.org/solr/NearRealtimeSearch для получения дополнительной информации и ссылок.

...