2

私のプロジェクトでは、Sitecore7 MVC、Solr、Glass Mapper を使用しています。

「ContentSearch」インデックスには、サイトコア テンプレートで使用されるほぼすべてのフィールドが含まれています。GlassMapper クラスをモデル (サイトコア フィールドであるプロパティ以外はほとんど含まれていません) として使用し、クエリを実行しています。ここで説明されているように、基本的に「カスタム結果クラスの使用」を行っています:http://glass.lu/docs/tutorial/sitecore/tutorial25/tutorial25.html

これは想定どおりに機能します。

私の質問は:

インデックスが存在する限り、Solr インデックスを使用してクラス プロパティ (通常はサイトコア フィールド) を設定していますか (これが必要です)。

また

Field Values を取得するためにサイトコアに行くのですか? (これは非効率的だと思います。その場合、カスタム クラスを作成し、それらをループして glassMapper クラスにデータを入力します。これは、ビューで GlassMapper クラスをモデルとして使用したためです)

たとえば、私のモデルの1つは次のようになります。

    [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; }
    }
4

1 に答える 1