簡體   English   中英

更改產品數據時更新Solr Index

[英]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中創建新的數據索引? 如果我錯了糾正我。

我的問題是:

  1. 這會重新整合Solr Index Data嗎? 或者只更新已更改/新的數據? 怎么樣? 即使它只更新已更改/新數據,它如何知道更改了哪些數據? 對於大型數據集,這必須存在一些問題。
  2. 跟蹤自上次提交以來發生了哪些變化的替代方法是什么,有沒有辦法將這些產品添加到已更改的Solr索引中。
  3. 當我們將現有記錄更新為solr時會發生什么? 它是否刪除舊數據並插入新數據並重新創建整個索引? 這種資源密集嗎?
  4. 數百萬產品的電子商務零售商有多大。

解決這個問題的最佳策略是什么?

  1. 僅執行更新時,該記錄將被刪除並插入。 Solr不會更新記錄。 其他記錄沒有動過。 提交數據時,將使用此新數據創建新段。 在優化時,數據被優化為單個段。

  2. 您可以使用增量構建技術在上次構建后添加/更新記錄。 DIH 開箱即用 ,如果您通過作業手動處理它,您可以維護時間戳並運行構建。

  3. Solr沒有更新操作。 它將執行刪除和添加。 因此,您必須再次使用完整數據,而不僅僅是更新的字段。 它不是資源密集型的。 通常只有Commit和Optimize。

  4. Solr可以處理任何數量的數據。 如果數據超出單個機器的處理能力,則可以使用Sharding。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM