Compartir por


Buscar no contido de ficheiros anexos de artigos de coñecemento

Pode utilizar o anexo de artigos de coñecemento para incluír ficheiros descargables nos artigos da base de coñecemento. Tamén pode utilizar ficheiros web para crear unha páxina de preguntas máis frecuentes con contido descargable.

Importante

Só se poden buscar os ficheiros que están anexados a artigos de knowledge. Os ficheiros que están anexada a ficheiros web non son pescudables.

Pode configurar o seu sitio de Power Pages para permitir aos usuarios buscar dentro do contido dos anexos de artigos da base de coñecemento. Isto axuda aos usuarios a atopar a información que estean a buscar.

Nos artigos da base de coñecemento, os anexos indéxanse co prefixo definido.

Para indexar os anexos de artigos de coñecemento, debe crear a seguinte configuración de sitio e definir o valor como True:

Configuración do sitio Descrición
Search/IndexNotesAttachments Indica se se debe indexar o contido dos anexos en artigos da base de coñecemento. Por defecto, está definido como False.
KnowledgeManagement/DisplayNotes Indica se se mostran os anexos dos artigos da base de coñecemento. Por defecto, está definido como False.

Cando se busca un termo, os resultados da busca tamén inclúen os anexos. Se o termo de busca se corresponde cun anexo de artigos de coñecemento, tamén se fornece a ligazón ao artigo da base de coñecemento correspondente. Para ver os anexos descargables, seleccione Descargas en Tipo de rexistro no panel da esquerda. Para modificar a etiqueta Descargas, edite o fragmento de código Search/Facet/Downloads. Por defecto, o valor defínese como Descargas.

Nota

A busca de Dataverse debe estar habilitada no seu contorno para usar esta funcionalidade.

Buscar anexos de artigos de coñecemento

Se o seu sitio utiliza a busca de Lucene. NET, pode habilitar o sitio web para buscar nos anexos de artigos de coñecemento configurando a opción Sincronizar os anexos de artigos de coñecemento co sitio en Si no Centro de administración de Dynamics 365 Customer Service ou na aplicación Plataforma común de servizo de atención ao cliente. Non necesita configurar esta opción se o teu sitio está a usar a busca de Dataverse, poderá buscar nos anexos de artigos de coñecemento de forma predeterminada.

Isto permite á busca consultar os anexos de artigos de coñecemento e facer que a información sexa facilmente accesible para os consumidores de coñecemento. Con esta capacidade de anexión, non terá que usar anexos de notas para o sitio. Os anexos de artigos de coñecemento sincronizaranse automaticamente co anexo de notas. Máis información: Actualizar anexos de artigos de coñecemento para o portal

Actualizar configuracións do sitio

Se xa tiña un sitio web antes de abril de 2018 e actualizou o seu sitio á versión máis recente, debe utilizar as configuracións seguintes para ter a mesma experiencia de usuario que con unha instalación nova do sitio.

Fragmentos de contido

Para modificar a etiqueta que se mostra nos resultados da busca para anotacións e ficheiros web, cree un fragmento de código de contido Search/Facet/Downloads e, a seguir, defina o valor conforme sexa necesario. O valor predefinido é Descargas.

Modelos web

O modelo web Busca por refinamento progresivo - Modelo de resultados revísase para mostrar ficheiros asociados aos artigos da base de coñecemento como elementos principais dos resultados da busca cunha ligazón ao artigo relacionado. Debe actualizar o modelo web Busca por refinamento progresivo - Modelo de resultados á seguinte orixe:

{% 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%}

Configuracións do sitio

Debe engadir o valor \_logicalname:annotation~0.9^0.25 á configuración do sitio Busca/Consulta. Despois de engadilo, o valor debe ser o seguinte:

+(@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

Para configurar as facetas como anotacións de grupo asociadas a artigos da base de coñecemento e ficheiros web nunha única faceta, edite o nome de configuración do sitio Search/RecordTypeFacetsEntities e anexe ;Downloads:annotation,adx_webfile ao seu valor.

Para permitir que os anexos asociados a artigos da base de coñecemento aparezan no sitio web e nos resultados da busca, edite a configuración do sitio de KnowledgeManagement/DisplayNotes e defina o valor como True. A configuración do sitio KnowledgeManagement/NotesFilter contén un valor de prefixo debe prefixarse no campo de texto de nota nas notas; só aparecerán na páxina web as notas co valor de prefixo especificado. Por defecto, o valor é *WEB*, pero pode modificalo mediante a configuración do sitio.

Para activar o indexado de ficheiros anexos de asociados ás notas, cree a configuración do sitio Search/IndexNotesAttachments e defina o valor como True.