Мы работаем над реализацией Solr на сайте для электронной коммерции. Сайт постоянно обновляется новыми данными либо обновлениями, содержащимися в существующей информации о продукте, либо добавлением нового продукта.Обновление индекса Solr при изменении данных о товаре
Мы используем его на asp.net mvc3-приложении с помощью solrnet.
Мы сталкиваемся с проблемой с индексацией. В настоящее время мы делаем фиксацию с помощью следующих действий:
private static ISolrOperations<ProductSolr> solrWorker;
public void ProductIndex()
{
//Check connection instance invoked or not
if (solrWorker == null)
{
Startup.Init<ProductSolr>("http://localhost:8983/solr/");
solrWorker = ServiceLocator.Current.GetInstance<ISolrOperations<ProductSolr>>();
}
var products = GetProductIdandName();
solrWorker.Add(products);
solrWorker.Commit();
}
Хотя это только простое приложение теста, где мы вставили только название продукта и идентификатор в индекс Solr. Каждый раз, когда он запускается, новые продукты обновляются каждый раз и доступны при поиске. Я думаю, что это создает новый индекс данных в solr каждый раз, когда он работает? Поправьте меня если я ошибаюсь.
Мой вопрос:
- ли этот воссоздают индекс Solr данных в целом? Или просто обновите данные, которые были изменены/новые? Как? Даже если он только обновляет измененные/новые данные, как он знает, какие данные изменены? При большом наборе данных у этого должны быть некоторые проблемы.
- Каков альтернативный способ отслеживания изменений, произошедших после последнего фиксации, и есть ли способ добавить этот продукт в индекс Solr, который изменился.
- Что происходит, когда мы обновляем существующую запись в solr? Удаляет ли старые данные и вставляет новые и воссоздает весь индекс? Является ли этот ресурс интенсивным?
- Как большой розничный торговец электронной коммерции делает это с миллионами продуктов.
Какая стратегия поможет решить эту проблему?
Hi Jayendra, спасибо, что обратилась за помощью. –
Я рассматриваю DIH и задаю другой вопрос. Может ли deltaImportQuery использоваться для извлечения данных из некоторой хранимой процедуры? –
nope. Вам необходимо написать запросы в соответствии с вашими требованиями. Он выполняет обработку для хранения последней успешной метки времени сборки и использования ее в запросе. – Jayendra