我剛開始使用SOLR與Sitecore 7集成。我設法遵循一些指南,並構建了一個「POCO」類(繼承自SearchResultItem),它允許我執行LINQ查詢和搜索數據,如下面的示例所示:Sitecore 7 LinQ POCO類 - 如何從Treelist獲取數據?
public class MySearchItem: SearchResultItem
{
[IndexField("Text Field")]
public string TextField
{
get;
set;
}
[IndexField("Drop Link")]
public ID DropLink
{
get;
set;
}
[IndexField("Tree List")]
public IEnumerable<ID> TreeList
{
get;
set;
}
}
當我執行查詢,使用下面的代碼,我觀察文本字段,並在結果項目DropLink屬性正確填充,與內容和ID分別爲TextField和DropLink。然而TreeList屬性被檢索爲null。我檢查了顯而易見的內容,並確保提示正確反映sitecore模板中的字段名稱,並根據sitecore 7的「項目存儲桶和搜索開發人員指南」文檔自動支持IEnumerable。因爲到results.First通話
var index = ContentSearchManager.GetIndex("sitecore_master_index");
using (var context = index.CreateSearchContext())
{
var results = context.GetQueryable<MySearchItem>();
results = results.Where(item => item.TemplateName == "Custom Sitecore Template");
}
場位於索引()「的TreeList」]似乎顯示出我後的數據。這是否是讀取數據的正確方法?
此外,是否可以在我的「POCO」課程中添加其他類型的內容?比方說,我想查詢樹列表中的項目的屬性。我將如何去實施這個?我是否正確地假設我的樹列表類型的TypeConverter需要sitecore正確解析TreeList中除ID之外的類型以執行類似下面的操作?
[IndexField("Tree List")]
public IEnumerable<TreeListItem> TreeList
{
get;
set;
}
任何幫助/指導理解這種行爲將不勝感激。
謝謝!
更新
在這篇文章建議我已經申請這個bug報告。如果有人遇到這個,他們確認這是一個問題,並提出了以下解決方法:
以下行添加到Sitecore.ContentSearch.Solr.Indexes.config文件的部分:
<typeMatch typeName="guidCollection" type="System.Collections.Generic.IEnumerable`1[System.Guid]" fieldNameFormat="{0}_sm" multiValued="true" settingType="Sitecore.ContentSearch.SolrProvider.SolrSearchFieldConfiguration, Sitecore.ContentSearch.SolrProvider" />
<typeMatch typeName="stringCollection" type="System.Collections.Generic.IEnumerable`1[System.String]" fieldNameFormat="{0}_sm" multiValued="true" settingType="Sitecore.ContentSearch.SolrProvider.SolrSearchFieldConfiguration, Sitecore.ContentSearch.SolrProvider" />
<typeMatch typeName="intCollection" type="System.Collections.Generic.IEnumerable`1[System.Int32]" fieldNameFormat="{0}_im" multiValued="true" settingType="Sitecore.ContentSearch.SolrProvider.SolrSearchFieldConfiguration, Sitecore.ContentSearch.SolrProvider" />
希望這可以幫助!
工作馬上!謝謝。 –
您應該將此報告給Sitecore支持作爲文檔或配置錯誤 –