Obter propriedades personalizadas como `Criado` e `Descrição` em Modelos de apresentação de ContentBySearchWebPart
-
10-12-2019 - |
Pergunta
Eu uso Modelos de apresentação para o processamento de ContentBySearchWebPart.Recurso interessante, mas como eu posso adicionar propriedades personalizadas a partir de resultados de pesquisa item da lista para Exibir o Modelo?
Por exemplo, eu tenho um modelo, some_listitem_template.html
:
<!--#_
var line1 = $getItemValue(ctx, "Line 1");
var line2 = $getItemValue(ctx, "Line 2");
var line3 = $getItemValue(ctx, "Line 3");
for (var p in ctx.CurrentItem)
{
console.log(p + ":" + $getItemValue(ctx, p));
}
line1.overrideValueRenderer($contentLineText);
line2.overrideValueRenderer($contentLineText);
_#-->
<div class="news-date">_#= line3 =#_</div>
<div class="news-title">
<a href="_#= linkURL =#_" title="_#= $htmlEncode(line1.defaultValueRenderer(line1)) =#_">_#= line2 =#_</a>
</div>
E eu tenho de Mapeamento de Propriedades de seqüência de declaração de
<mso:ManagedPropertyMapping msdt:dt="string">'Link URL':'Path','Line 1':'Title','Line 2':'Description', 'Line 3':'Created'</mso:ManagedPropertyMapping>
Mas essas propriedades (Descrição e Criado) está sempre vazia.A informação de depuração a partir de console.log
me mostrar que ContextItem
tem uma muito pequena coleção de propriedades:
Rank:0
DocId:46734
Path:http://someurl/news/Page-1.aspx
Title:Some title
FileExtension:aspx
SecondaryFileExtension:aspx
OriginalPath:somepath
PartitionId:0c37852b-34d0-418e-91c6-2ac25af4be5b5
UrlZone:1
AAMEnabledManagedProperties:AttachmentURI;deeplinks;DefaultEncodingURL;ExternalMediaURL;HierarchyUrl;OrgParentUrls;OrgUrls;OriginalPath;ParentLink;Path;PictureThumbnailURL;PictureURL;PublishingImage;recommendedfor;ServerRedirectedEmbedURL;ServerRedirectedPreviewURL;ServerRedirectedURL;SiteLogo;SitePath;SPSiteURL;UserEncodingURL
RenderTemplateId:~sitecollection/_catalogs/masterpage/Display Templates/Search/Item_Default.js
QueryRuleId:00000000-0000-0000-0000-000000000000
Suponha que por causa de Configuração de Pesquisa, mas de onde é esse lugar exatamente?
Solução
Verifique o seguinte:
- Vá para /_catalogs/masterpage e encontrar o seu displaytemplate do arquivo js.Ver as respectivas propriedades e verifique se você ver os mapeamentos em questão, a Propriedade Gerenciada Mapeamentos de propriedade.
- Ir para Centra Admin -> Gerenciar Aplicativos de Serviço -> Aplicativo de Pesquisa, e olhar para o seu esquema - certifique-se de que a Descrição e Criados são propriedades gerenciadas existentes e tehy correspondentes propriedades rastreadas.
Outras dicas
Uma outra coisa a verificar, se você estiver usando tipos de resultado para exibir itens:
Vá para /_layouts/15/manageresulttypes.aspx?nível=sitecol no nível do conjunto de sites, e /_layouts/15/manageresulttypes.aspx?nível=site no site de nível, e clique em atualização se há uma propriedade aviso de sincronização.
Isso precisa ser feito cada vez que os mapeamentos são alterados no modelo