[英]Updating Solr Index when product data has changed
我們正在努力在電子商務網站上實施Solr。 通過現有產品信息中的更新或完全添加新產品,網站將不斷更新新數據。
我們在使用solrnet的asp.net mvc3應用程序中使用它。
我們面臨索引問題。 我們目前使用以下方式進行提交:
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();
}
雖然這只是一個簡單的測試應用程序,我們只將產品名稱和id插入到solr索引中。 每次運行時,新產品都會立即更新,並在我們搜索時可用。 我認為每次運行時都會在solr中創建新的數據索引? 如果我錯了糾正我。
我的問題是:
解決這個問題的最佳策略是什么?
僅執行更新時,該記錄將被刪除並插入。 Solr不會更新記錄。 其他記錄沒有動過。 提交數據時,將使用此新數據創建新段。 在優化時,數據被優化為單個段。
您可以使用增量構建技術在上次構建后添加/更新記錄。 DIH 開箱即用 ,如果您通過作業手動處理它,您可以維護時間戳並運行構建。
Solr沒有更新操作。 它將執行刪除和添加。 因此,您必須再次使用完整數據,而不僅僅是更新的字段。 它不是資源密集型的。 通常只有Commit和Optimize。
Solr可以處理任何數量的數據。 如果數據超出單個機器的處理能力,則可以使用Sharding。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.