Domanda

Ho aggiunto una fonte di contenuto di ricerca per la mia applicazione BDC e i risultati vengono popolati correttamente. Fin qui tutto bene! Non mi piace molto il modo in cui i risultati vengono visualizzati, però.

Problema 1: Titoli di risultato

Il titolo del risultato è sempre il nome del file della pagina del profilo. Ovviamente, poiché ogni articolo di un tipo ha la stessa pagina del profilo, questo non è davvero utile. C'è un modo per me per cambiare ciò che viene visualizzato lì? Idealmente, sarebbe una combinazione di alcuni campi diversi sull'oggetto, come il nome del nome + cognome.

Usando lo screenshot sottostante come esempio, vorrei modificare il link che dice customer_1.aspx, proprio sopra lo snippet del contenuto.

Esempio di ricerca SharePoint Risultato della ricerca

Problema 2: Snippet di testo

C'è un modo per forzare il risultato della ricerca per visualizzare determinati campi dall'elemento? In questo esempio, per una ricerca di contatti, forse vorrei mostrare il proprio numero di telefono e indirizzo e-mail subito, per salvare l'utente dal dover fare clic su e attendere che la pagina del profilo da caricare solo per ottenere informazioni di contatto di base. .

Aggiornamento: Tipo di risultato

Ho ricercando questo la maggior parte del giorno e ho imparato che ho bisogno di creare un tipo di risultato per il mio tipo di contenuto esterno. Una volta che ho, posso creare modelli di visualizzazione personalizzati. Ho provato questo un mucchio di volte, ma non riesco ancora a farlo funzionare.

Ho creato una proprietà gestita su una delle colonne (un numero intero non nullo che è solo su questo tipo di record), ma non ho trovato un'impostazione della partita della proprietà che funzionerà. Qualche suggerimento?

Inserisci Descrizione dell'immagine qui

È stato utile?

Soluzione

La soluzione è creare un nuovo modello di visualizzazione che include i campi BCS come proprietà gestite. È necessario aggiungere le proprietà gestite nell'applicazione del servizio di ricerca in schema di ricerca, quindi fare un crawl completo.

Copia un modello di visualizzazione esistente e quindi aggiungere le proprietà gestite e il rendering della logica in modo da sembrare il modo desiderato.

È possibile seguire questa guida: http://www.ableblue.com/blog/archive/2013/06/05/introduction-to-SharePoint-2013-Display-Templates/ Per il debug: http:// www .AbleBlue.com / Blog / Archivio / 2014/03 / 01 / Creazione-A-diagnostica-Modello-Modello /

Per il tipo di risultato hai una coppia di scelte, probabilmente il più semplice è creare una fonte di risultato. È possibile creare una fonte di risultato che include solo le entità da BCS. I risultati saranno associati al contentType dall'entità BCS. Nel mio caso la Bcsentity è "cliente" (perché ho un'entità del cliente nel mio modello BCS). In questo modo creo una regola di tipo risultato e applicalo al mio risultato sorgente. Sembra che il tuo sarà qualcosa come l'Asicustomer.

Un'altra alternativa è creare una regola come ASICustomerNumber contains "1,2,3,4,5,6,7,8,9,0"

Altri suggerimenti

Soluzione al problema 1 (e forse anche 2)

È necessario configurare l'host della pagina del profilo del tipo di contenuto esterno Per farlo potrebbe seguire questa guida http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/04/15/how-to-Create-a-BCS-profile-Page-in-SharePoint-2010.aspx

Spero che questo possa aiutarti.

Ri: La Domanda OP n. 1, "Come si visualizza una proprietà gestita al posto del campo del titolo (nome della pagina del profilo per BDC ECTS) nel modello di visualizzazione?" (parafrasato).

Basato sulla lettura dei vari post dei blog di Lettura di Matthew's e Bella Engen su questo argomento vedo due possibili soluzioni. Non ho ancora implementato neanche uno.

    .
  1. Modifica Item_CommonItem_Body.html per sostituire l'uscita del campo del titolo. Questo modello di visualizzazione comune è chiamato dal modello di visualizzazione tramite la linea _#=ctx.RenderBody(ctx)=#_
  2. in linea il codice da Item_CommonItem_Body.html nel modello di visualizzazione Sostituzione della linea _#=ctx.RenderBody(ctx)=#_

    per (1), in Item_CommonItem_Body.html Modifica la linea var titleHtml = String.format(...); per emettere la proprietà gestita desiderata. Ovviamente questo influenza molti modelli di visualizzazione nel Centro di ricerca. Questo potrebbe non essere quello che vuoi.

    per (2), se si dispone di più tipi di risultato, quindi più modelli di visualizzazione dell'articolo dovrai in linea il codice più volte.

    Nessuna di queste è una grande soluzione.

    Fare riferimento al blog di Matteo partendo da Introduzione ai modelli di visualizzazione SharePoint 2013 e Blog Blog Series Come modificare il modo in cui i risultati della ricerca vengono visualizzati in SharePoint Server 2013

RE: the OP question #1 redux, I did more research and found what is likely the preferred solution for 80% of cases. I left my other answer in case the details are useful for the other 20% of casses.

To recap, "How do you display a managed property in place of the Title field (profile page name for BDC ECTs) in the display template?" (paraphrased).

Answer: For BDC / search scenario, map the managed property Title to the crawled property corresponding to the desired entity field.

  • Start by browsing to your search service application
  • Open Search Schema > Managed Properties
  • Filter to properties that contain "Title"
  • Edit the "Title" property

enter image description here

  • Add mapping to the required crawl property(ies)

If you need a crawled property for an aggregate of entity fields, instead create a composite field on the entity because only a single crawled property value will be mapped.

enter image description here

  • Recrawl
  • Recrawl again

I found that the managed property and search results (display template) did not render the correct value from the crawled property until after a couple of crawls or a few hours later. Not sure why.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top