我有Sitecore項目與其他項目(與不同的模板)指的treelist屬性。 我的目標是使用ContentSearch api(lucene)在treelist屬性中查找包含項目B的項目A.Sitecore 7索引trellist lucene
我已經添加了樹形列表屬性,我的指數:
<indexConfigurations>
<defaultLuceneIndexConfiguration type="Sitecore.ContentSearch.LuceneProvider.LuceneIndexConfiguration, Sitecore.ContentSearch.LuceneProvider">
<fieldMap type="Sitecore.ContentSearch.FieldMap, Sitecore.ContentSearch">
<fieldNames hint="raw:AddFieldByFieldName">
<field patch:before="field[0]" fieldName="TreelistProperty" storageType="YES" indexType="UNTOKENIZED" vectorType="NO" boost="1f" type="System.String"
settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider">
<analyzer type="Sitecore.ContentSearch.LuceneProvider.Analyzers.LowerCaseKeywordAnalyzer, Sitecore.ContentSearch.LuceneProvider" />
</field>
</fieldNames>
</fieldMap>
</defaultLuceneIndexConfiguration>
</indexConfigurations>
我期望Lucene的存儲樹形列表財產的GUID的串聯。
假設這是正確的,我的索引填充我的查詢看起來是這樣的:
master = Sitecore.ContentSearch.ContentSearchManager.GetIndex("sitecore_master_index");
using (var context = master.CreateSearchContext())
{
var results = context.GetQueryable<SearchResultItem>()
.Where(x => x["TreelistProperty"].Contains("{456-41414-my-guid-here-1516}"))
.GetResults();
var hits = results.Hits.ToArray();
}
這將返回什麼。它出了什麼問題?
您是否確定小寫您查詢的GUID值?如果我記得正確的話;所有GUID都以小寫形式進入索引。 – 2014-11-03 09:24:41
有沒有試過。 – user1613512 2014-11-03 09:49:30
所以我昨天試了這個。映射字段有IndexField(「lucene中的字段名稱」)public IEnumerable Values {get; set;}。然後按照阿曼的方法。很棒。 –
Gabbar
2014-11-03 19:43:59