Compartilhar via


Pesquise no conteúdo do anexo do artigo de conhecimento

É possível usar o anexo do artigo de conhecimento para incluir arquivos que podem ser baixados em artigos da base de dados de conhecimento. É possível também usar os arquivos da Web para criar uma página de Perguntas Frequentes com o conteúdo que pode ser baixado.

Importante

Somente os arquivos anexados a artigos de conhecimento podem ser pesquisados. Os arquivos anexados a arquivos da Web não são pesquisáveis.

Você pode configurar seu site do Power Pages para permitir que os usuários pesquisem no conteúdo do anexo de artigos da base de conhecimento. Isso ajuda os usuários a localizar as informações que eles estão procurando.

Nos artigos da base de conhecimento, qualquer anexo com o prefixo definido é indexado.

Para indexar os anexos do artigo de conhecimento, é necessário criar as seguintes configurações do site e definir seu valor como Verdadeiro:

Configuração do site Descrição
Search/IndexNotesAttachments Indica se o conteúdo dos anexos nos artigos da base de conhecimento deve ser indexado. Por padrão, ele é definido como Falso.
KnowledgeManagement/DisplayNotes Indica se deve exibir anexos dos artigos da base de conhecimento. Por padrão, ele é definido como Falso.

Quando você procura um termo, os resultados da pesquisa também incluem anexos. Se o termo da pesquisa corresponder a um anexo do artigo de conhecimento, o link para o artigo da base de conhecimento correspondente também é fornecido. Para ver anexos que podem ser baixados, selecione Downloads em Tipo de Registro no painel esquerdo. Para modificar o rótulo Downloads, edite o trecho do conteúdo Pesquisar/Faceta/Downloads. Por padrão, o valor é definido como Downloads.

Observação

Pesquisa do Dataverse deve estar habilitada em seu ambiente para usar esta funcionalidade.

Pesquisar nos anexos de artigos de conhecimento

Se o seu site usa a pesquisa Lucene .NET, você pode permitir que o site pesquise anexos de artigos de conhecimento definindo a opção Sincronizar anexos de artigos de conhecimento com o site como Sim no centro de administração do Dynamics 365 Customer Service ou no aplicativo Hub do SAC. Você não precisará configurar esta opção se seu site estiver usando a pesquisa do Dataverse. Você poderá pesquisar por meio de anexos de artigos de conhecimento por padrão.

Isso permite que a pesquisa procure anexos de artigos de conhecimento e torne as informações facilmente acessíveis aos consumidores de conhecimento. Com esse recurso de anexo, você não precisará usar os anexos de notas para o site. Os anexos de artigos de conhecimento serão sincronizados automaticamente com o anexo de anotações. Mais informações: Atualizar anexos de artigos de conhecimento para o portal

Atualizar configurações de sites

Se você já tinha um site antes de abril de 2018 e atualizou seu site para a versão mais recente, é necessário usar as configurações a seguir para ter a mesma experiência do usuário de uma nova instalação.

Trechos de Conteúdo

Para modificar o rótulo exibido nos resultados da pesquisa para anotação e os downloads do arquivo da Web, crie um trecho de conteúdo Pesquisar/Faceta/Downloads e defina seu valor, conforme necessário. O valor padrão é Downloads.

Modelos da Web

O modelo da Web Pesquisa Facetada - Modelo de Resultados é revisado para exibir arquivos associados aos artigos da base de conhecimento como itens do resultado de pesquisa principal com um link do artigo relacionado. É necessário atualizar o modelo da Web Pesquisa Facetada - Modelo de Resultados para a seguinte origem:

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

Configurações de Site

É necessário adicionar o valor \_logicalname:annotation~0.9^0.25 à definição Pesquisar/Consultar site. Depois de adicionado, o valor deve 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 para agrupar as anotações associadas com os artigos da base de conhecimento e os arquivos da Web de uma única faceta, edite o nome da configuração do site Search/RecordTypeFacetsEntities e anexe ;Downloads:annotation,adx_webfile ao seu valor.

Para permitir que anexos associados a artigos de conhecimento apareçam no site e nos resultados da pesquisa, edite a configuração do site KnowledgeManagement/DisplayNotes e defina seu valor como True. A configuração do site KnowledgeManagement/NotesFilter contém um valor de prefixo que deve ser prefixado ao campo de texto da nota nas notas; apenas notas com o valor de prefixo especificado aparecerão na página da web. Por padrão, o valor é *WEB*, mas você pode alterá-lo na configuração do site.

Para habilitar a indexação de anexos do arquivo associados às notas, crie a configuração do site Search/IndexNotesAttachment e defina seu valor como True.