我也在Our Umbraco community網站上詢問了以下問題,但到目前爲止我還沒有運氣。Lucene SearchResult.Fields集合缺少一些屬性
我有一個任務,我需要爲媒體圖像文件手動添加數據庫記錄,這將出現在我們的客戶端的Umbraco網站中。
我的SQL包括:
- 添加在umbracoNode記錄的圖像。
- 添加記錄在cmsContent
- 在cmsContentXml
- 添加記錄cmsPropertyData對圖像的umbracoFile,umbracoWidth,umbracoHeight,umbracoBytes,umbracoExtension
添加記錄執行上面的後,並登錄到一把umbraco ,我可以在媒體區域看到圖像,並且一切都很美觀。
問題是當我想顯示該圖像時,調用@ Model.MediaById()(在Razor文件中) - 由於未設置img'src'屬性,因此基本上不顯示圖像。
我已經穿過Umbraco代碼並發現了問題。基本上,當代碼使用Lucene搜索媒體(ExaminedBackendMedia.GetUmbracoMedia())時,它確實找到了圖像文件,但是SearchResult缺少一些字段。例如,字段集合中不會出現cmsPropertyData的「umbraco *」屬性。當我通過另一個圖像(手動添加的圖像)的代碼時,我可以在字段集合中看到額外的5個屬性 - 包括所有的「umbraco *」屬性。
所以我可以看到我在這裏缺少數據。基本上SearchResult對象缺少一些字段。有人可以建議我可能錯過了什麼嗎?爲什麼Lucene沒有選擇通過SQL腳本添加的「umbraco *」屬性?
如果您重新發布所有節點,然後執行代碼,那麼手動添加內容的缺失字段? –
是的,我添加到cmsPropertyData(例如「umbracoWidth」)的所有字段都從SearchResult.Fields中丟失。這對我說,我錯過了一個步驟,因爲Lucene沒有拿起這些領域。 –
哦,堅持下去,我只是注意到你提到「重新發布所有節點」。這個過程究竟是什麼? –