Condividi tramite


Cerca nel contenuto dell'allegato dell'articolo della Knowledge Base

Puoi utilizzare l'articolo della Knowledge Base alle note per includere file scaricabili negli articoli della Knowledge Base. Puoi inoltre utilizzare i file Web per creare una pagina di domande frequenti con contenuto scaricabile.

Importante

La ricerca può essere eseguita solo nei file allegati ad articoli della Knowledge Base. La ricerca non può essere eseguita nei file allegati a file Web.

Puoi configurare il sito Power Pages per consentire agli utenti di cercare nel contenuto degli allegati degli articoli della Knowledge Base. Questa consente gli utenti di trovare le informazioni che stanno cercando.

Negli articoli della Knowledge Base, qualsiasi allegato con il prefisso definito viene indicizzato.

Per indicizzare gli allegati all'articolo della Knowledge Base, devi creare le seguenti impostazioni del sito e impostare il relativo valore su True:

Impostazione sito Descrizione
Search/IndexNotesAttachments Indica se il contenuto degli allegati negli articoli della Knowledge Base deve essere indicizzato. Per impostazione predefinita, il valore è impostato su False.
KnowledgeManagement/SchermoNotes Indica se visualizzare gli allegati degli articoli della Knowledge Base. Per impostazione predefinita, il valore è impostato su False.

Quando ceerchi un termine, i risultati della ricerca includono anche gli allegati. Se il termine di ricerca corrisponde a un allegato all'articolo della Knowledge Base, viene fornito anche il collegamento all'articolo della Knowledge Base corrispondente. Per visualizzare gli allegati scaricabili, seleziona Download in Tipo di record nel riquadro sinistro. Per modificare l'etichetta Download, modifica il frammento di contenuto Search/Facet/Downloads. Per impostazione predefinita, questo valore è impostato su Downloads.

Nota

La ricerca di Dataverse deve essere abilitata nel tuo ambiente per utilizzare questa funzionalità.

Ricerca negli allegati agli articoli della Knowledge Base

Se il sito usa la ricerca Lucene .NET, è possibile consentire al sito Web di eseguire ricerche negli allegati dell'articolo della Knowledge Base impostando l'opzione Sincronizza gli allegati dell'articolo della Knowledge Base nel sito su nell'interfaccia di amministrazione di Dynamics 365 Customer Service o nell'app Hub del servizio clienti. Non è necessario configurare questa opzione se il tuo sito utilizza la ricerca Dataverse, sarai in grado di cercare tra gli allegati degli articoli della Knowledge Base per impostazione predefinita.

Questo permette la ricerca negli allegati dell'articolo della knowlede base e rendere le informazioni facilmente accessibili ai consumatori della knowlede base. Con questa nuova capacità di allegati, non dovrai usare gli allegati delle note per il sito. Gli allegati dell'articolo della Knowledge Base verranno automaticamente sincronizzati con l'allegato delle note. Ulteriori informazioni: Aggiornare gli allegati degli articoli di conoscenza per il portale

Aggiornamento delle configurazioni del sito

Se disponi già di un sito Web prima dell'aprile 2018 e hai aggiornato il sito all'ultima versione, devi utilizzare le seguenti configurazioni per creare la stessa esperienza utente come nuova installazione del portale.

Frammenti di contenuto

Per modificare l'etichetta visualizzata nei risultati della ricerca per download di file Web e annotazioni, crea un frammento di contenuto Search/Facet/Downloads, quindi imposta il valore in base alle esigenze. Il valore predefinito è Downloads.

Modelli Web

Il modello Web Faceted Search - Results Template viene aggiornat in modo da visualizzare i file associati ad articoli della Knowledge Base come elementi primari dei risultati della ricerca con un collegamento all'articolo correlato. Devi aggiornare il modello Web Faceted Search - Results Template in base all'origine seguente:

{% assign openTag = '{{' %}
{% assign closingTag = '}}' %}
{%raw%}
  <script id="search-view-results" type="text/x-handlebars-template">
    {{#if items}}
      <div class="page-header">
        <h2>{%endraw%}{{openTag}} stringFormat "{{ resx.Search_Results_Format_String }}" firstResultNumber lastResultNumber itemCount {{closingTag}}{%raw%}
          <em class="querytext">{{{query}}}</em>
          {{#if isResetVisible}}
            <a class="btn btn-default btn-sm facet-clear-all" role="button" title="{%endraw%}{{ snippets['Search/Facet/ClearConstraints'] | default: res['Search_Filter_Clear_All'] }}{%raw%}" tabIndex="0">{%endraw%}{{ snippets['Search/Facet/ClearConstraints'] | default: res['Search_Filter_Clear_All'] }}{%raw%}</a>
          {{/if}}
        </h2>
      </div>
      <ul>
        {{#each items}}
          <li>
            <h3><a title="{{title}}" href="{{url}}">{{#if parent}}<span class="glyphicon glyphicon-file pull-left text-muted" aria-hidden="true"></span>{{/if}}{{title}}</a></h3>
            <p class="fragment">{{{fragment}}}</p>
            {{#if parent}}
              <p class="small related-article">{%endraw%}{{ resx.Related_Article }}{%raw%}: <a title="{{parent.title}}" href="{{parent.absoluteUrl}}">{{parent.title}}</a></p>
            {{/if}}
            <ul class="note-group small list-unstyled">
            {{#if relatedNotes}}
              {{#each relatedNotes}}
                <li class="note-item">
                  {{#if isImage}}
                    <a target="_blank" title="{{title}}" href="{{absoluteUrl}}"><span class="glyphicon glyphicon-file" aria-hidden="true"></span>&nbsp;{{title}}</a>
                  {{else}}
                    <a title="{{title}}" href="{{absoluteUrl}}"><span class="glyphicon glyphicon-file" aria-hidden="true"></span>&nbsp;{{title}}</a>
                  {{/if}}
                  <p class="fragment text-muted">{{{fragment}}}</p>
                </li>
              {{/each}}
            {{/if}}
            {{#if relatedAttachments}}
              {{#each relatedAttachments}}
                <li class="note-item">
                  {{#if isImage}}
                    <a id="kbattachment-{{entityID}}" href="javascript:downloadKbAttachmentFile('kbattachment-{{entityID}}', '{{title}}', {{fileSize}}, '{{fileType}}', '{{downloadBlockUrl}}', '{{initializeDownloadUrl}}')"><span class="glyphicon glyphicon-file" aria-hidden="true"></span>&nbsp;{{title}}</a>
                  {{else}}
                    <a id="kbattachment-{{entityID}}" title="{{title}}" href="javascript:downloadKbAttachmentFile('kbattachment-{{entityID}}', '{{title}}', {{fileSize}}, '{{fileType}}', '{{downloadBlockUrl}}', '{{initializeDownloadUrl}}')"><span class="glyphicon glyphicon-file" aria-hidden="true"></span>&nbsp;{{title}}</a>
                  {{/if}}
                  <p class="fragment text-muted">{{{fragment}}}</p>
                </li>
              {{/each}}
            {{/if}}
            </ul>
          </li>
        {{/each}}
      </ul>
    {{else}}
      <h2>{%endraw%}{{ resx.Search_No_Results_Found }}{%raw%}<em class="querytext">{{{query}}}</em>
        {{#if isResetVisible}}
          <a class="btn btn-default btn-sm facet-clear-all" role="button" title="{%endraw%}{{ snippets['Search/Facet/ClearConstraints'] | default: res['Search_Filter_Clear_All'] }}{%raw%}" tabIndex="0">{%endraw%}{{ snippets['Search/Facet/ClearConstraints'] | default: res['Search_Filter_Clear_All'] }}{%raw%}</a>
        {{/if}}
      </h2>
   {{/if}}
  </script>
  <script type="text/javascript">
    function downloadKbAttachmentFile(attachmentElementId, fileName, fileSize, mimeType, downloadBlockUrl, initializeUrl) {
      // Download block API supports max 4MB block size
      const blockSizeInBytes = 4096 * 1024;
      const totalNumberOfBlocks = parseInt(fileSize / blockSizeInBytes + 1);
      var fileContinuationToken = "";
      var contentString = "";
      var numberOfBlocksDownloaded = 0;
      var blockNumberToContentMap = {};
      function downloadBlockCallback(i, result) {
        numberOfBlocksDownloaded++;
        blockNumberToContentMap[i] = result;
        if (numberOfBlocksDownloaded == totalNumberOfBlocks) {
          for (var j = 0; j < totalNumberOfBlocks; j++) {
            contentString += blockNumberToContentMap[j];
          }
          var isImage = mimeType.startsWith('image/');
          const attachmentElement = document.getElementById(attachmentElementId);
          if (isImage) {
            const bodyByteString = atob(contentString);
            const bodyBuffer = new ArrayBuffer(bodyByteString.length);
            const bodyView = new Uint8Array(bodyBuffer);
            for (var k = 0; k < bodyByteString.length; k++) {
              bodyView[k] = bodyByteString.charCodeAt(k);
            }
            var imageUrl = URL.createObjectURL(new Blob([bodyBuffer], { type: mimeType }));
            attachmentElement.href = imageUrl;
            attachmentElement.target = "_blank";
          }
          else {
            const linkSource = 'data:' + mimeType + ';base64,' + contentString;
            attachmentElement.href = linkSource;
            attachmentElement.download = fileName;
          }
          attachmentElement.click();
        }
      }
      shell.ajaxSafePost({
        type: 'GET',
        url: initializeUrl,
        success: function (result) {
          fileContinuationToken = encodeURIComponent(result);
          for (var i = 0; i < totalNumberOfBlocks; i++) {
            url = downloadBlockUrl + "&blockNumber=" + i + "&fileContinuationToken=" + fileContinuationToken + "&blockSize=" + blockSizeInBytes;
            var x = downloadBlockCallback.bind(this,i);
            shell.ajaxSafePost({
              type: 'GET',
              url: url,
              success: (result) => { x(result) }
            });
          }
        }
      });
    }
  </script>
{%endraw%}

Impostazioni sito

Devi aggiungere il valore \_logicalname:annotation~0.9^0.25 all'impostazione del sito Ricerca/Query. Dopo che lo hai aggiunto, il valore deve essere il seguente:

+(@Query) \_title:(@Query) \_logicalname:knowledgearticle~0.9^0.3 \_logicalname:annotation~0.9^0.25 \_logicalname:adx_webpage~0.9^0.2 -\_logicalname:adx_webfile~0.9 adx_partialurl:(@Query) \_logicalname:adx_blogpost~0.9^0.1 -\_logicalname:adx_communityforumthread~0.9

Per configurare i facet in modo da raggruppare le annotazioni associate agli articoli della Knowledge Base e i file Web in un unico facet, modifica il nome per l'impostazione del sito Search/RecordTypeFacetsEntities e aggiungi ;Downloads:annotation,adx_webfile al relativo valore.

Per abilitare gli allegati associati ad articoli della Knowledge Base in modo da essere visualizzati nel sito Web e nei risultati della ricerca, modifica l'impostazione del sito KnowledgeManagement/DisplayNotes e imposta il valore relativo su True. L'impostazione del sito KnowledgeManagement/NotesFilter contiene un valore di prefisso che deve essere posizionato prima del campo di testo della nota; solo le note con il valore di prefisso specificato verranno visualizzate nella pagina Web. Per impostazione predefinita, il valore è *WEB*, ma puoi modificarlo tramite l'impostazione del sito.

Per abilitare l'indicizzazione degli allegati ai file associati alle note, crea l'impostazione del sito Search/IndexNotesAttachments e imposta il relativo valore su True.