1

短い私のクエリ:

ContentBySearchWebpart を拡張して、検索用のカスタム クエリを作成できるようにしました。DataProviderJSON プロパティを変更し、カスタム QueryTemplate を追加しました。ただし、Web パーツはデフォルトの結果でレンダリングされます

私がやろうとしていること:

  1. カタログ サイト コレクションとその他の発行サイト コレクションを作成しました
  2. カタログ サイトでリストを作成し、カタログとして有効にし、公開サイトでこのカタログを接続しました。
  3. 検索先が上記のカタログ接続である発行サイトに CSWP を追加しました。
  4. クエリをカスタマイズしたい
4

1 に答える 1

0

私は自分の問題を解決しました。拡張Webパーツのコンストラクターでいくつかの基本プロパティを設定する必要があります。以下はコードサンプルです:

            string dataProviderJson = "{{'Properties':{{'TryCache':true,'Scope':'{0}','HHTitle_WB_Marker1':50,'HHTitle_WB_Marker2':60,'UpdateLinksForCatalogItems':true,'EnableStacking':true,'searchTerms':'','Tag':''}},'QueryGroupName':'Default','SourceID':'8413cd39-2156-4e00-b54d-11efd9abdb89','SourceName':'Local SharePoint Results (System)','SourceLevel':'Ssa','CollapseSpecification':'','QueryTemplate':'{{searchTerms?}} (contentclass:sts_listitem OR IsDocument:True) SPSiteUrl:{1} ListId:3d001e7a-d856-428b-9785-edf7ec4f4876 {{?owstaxidMetadataRegion:{{Tag}}}}  owstaxIdMetadataRegion:{2}','FallbackSort':[{{'p':'Rank','d':0}}],'RankRules':[],'AsynchronousResultRetrieval':false,'SendContentBeforeQuery':true,'BatchClientQuery':true,'FallbackLanguage':-1,'FallbackRankingModelID':'8f6fd0bc-06f9-43cf-bbab-08c377e083f4','EnableStemming':true,'EnablePhonetic':false,'EnableNicknames':false,'EnableInterleaving':true,'EnableQueryRules':true,'EnableOrderingHitHighlightedProperty':false,'HitHighlightedMultivaluePropertyLimit':-1,'IgnoreContextualScope':false,'ScopeResultsToCurrentSite':false,'TrimDuplicates':true,'ClientType':'ContentSearchRegular','UpdateAjaxNavigate':true,'SummaryLength':180,'DesiredSnippetLength':90,'PersonalizedQuery':false,'FallbackRefinementFilters':null,'IgnoreStaleServerQuery':false,'RenderTemplateId':'DefaultDataProvider','AlternateErrorMessage':null,'Title':''}}";
            string siteUrl = SPContext.Current.Site != null ? SPContext.Current.Site.Url.Trim() : "";
            base.ResultsPerPage = 3;
            base.BypassResultTypes = true;
            base.AlwaysRenderOnServer = false;
            dataProviderJson = String.Format(dataProviderJson, siteUrl, siteUrl + "/sites/Catalog", "en");
            base.DataProviderJSON = dataProviderJson;
            base.ItemTemplateId = "/_catalogs/masterpage/Display Templates/Content Web Parts/Banner.js";
            base.GroupTemplateId = "/_catalogs/masterpage/Display Templates/Content Web Parts/Group_Content.js";
            base.SelectedPropertiesJson = "['PublishingImage','PictureURL','PictureThumbnailURL','Path','Title','Description','SecondaryFileExtension','ContentTypeId']";
            base.HitHighlightedPropertiesJson = "['Title','Path','Author','SectionNames','SiteDescription']";
            base.QueryGroupName = "Default";
            base.RenderTemplateId = "/_catalogs/masterpage/Display Templates/Content Web Parts/Control_Banner.js";
            base.StatesJson = "{}";
            base.Title = "Banner Search WebPart";
            base.Description = "Banner Search WebPart";
            base.AllowMinimize = true;
            AllowConnect = true;
            AllowEdit = true;
            AllowHide = true;
            base.ZoneID = "ImportedPartZone";
于 2012-10-22T10:03:39.987 に答える