저는 내 프로젝트 Sitecore7 MVC, Solr 및 Glass Mapper를 사용하고 있습니다.Glass.Mapper.Sc는 sitecore7 검색에 인덱스 필드를 사용합니까
"ContentSearch"색인에는 sitecore 템플리트에 사용 된 거의 모든 필드가 들어 있습니다. GlassMapper 클래스를 내 모델 (Sitecore 필드 인 속성은 거의 포함하지 않음)로 사용하고 쿼리합니다. 기본적으로 여기에 설명 된대로 "사용자 지정 결과 클래스 사용"을 수행합니다. http://glass.lu/docs/tutorial/sitecore/tutorial25/tutorial25.html
예상대로 작동합니다.
내 질문은 :
그것은 한 인덱스가 (내가 원하는입니다) 존재 SOLR 인덱스를 사용하여 (필드 전형적으로 sitecore) 클래스 속성을 채우는 있습니까?
또는
그것은 필드 값을 얻을 수 sitecore 예정? (내가 생각하기에 비효율적이며 어떤 경우에 glassMapper 클래스를 채우기 위해 사용자 정의 클래스를 작성하고 반복 할 것입니다. 제 견해로 GlassMapper 클래스를 제 모델로 사용했기 때문입니다)
예를 들어 내 모델 중 하나는 다음과 같습니다 : 나는 실제로 단지 Glass.Mapper 내 포크에 몇 가지 코드를 밀어
[SitecoreType]
public class MyAwesomeModel
{
[SitecoreId]
[IndexField("_id")]
public virtual Guid Id { get; set; }
[SitecoreInfo(SitecoreInfoType.Language)]
[IndexField("_language")]
public virtual string Language { get; set; }
[TypeConverter(typeof(IndexFieldItemUriValueConverter))]
[XmlIgnore]
[IndexField("_uniqueid")]
public virtual ItemUri Uri { get; set; }
[SitecoreInfo(SitecoreInfoType.Version)]
public virtual int Version
{
get
{
return Uri == null ? 0 : Uri.Version.Number;
}
}
[SitecoreField(FieldName="MyRichtextField")]
[IndexField("MyRichtextField")]
public virtual string RichTextContent { get; set; }
[SitecoreInfo(SitecoreInfoType.Url, UrlOptions = SitecoreInfoUrlOptions.LanguageEmbeddingNever)]
public virtual string Url { get; set; }
}