Kongsi melalui


Cari dalam kandungan lampiran artikel pengetahuan

Anda boleh menggunakan lampiran artikel pengetahuan untuk menyertakan fail yang boleh dimuat turun dalam artikel pangkalan pengetahuan. Anda juga boleh menggunakan fail web untuk mencipta halaman Soalan Lazim dengan kandungan yang boleh dimuat turun.

Penting

Hanya fail yang dilampirkan pada artikel pengetahuan boleh dicari. Fail yang dilampirkan pada fail web tidak boleh dicari.

Anda boleh mengkonfigurasikan tapak Power Pages anda untuk membolehkan pengguna mencari dalam kandungan lampiran artikel pangkalan pengetahuan. Ini membantu pengguna menemui maklumat yang mereka cari.

Dalam artikel pangkalan pengetahuan, sebarang lampiran dengan awalan ditakrifkan diindeks.

Untuk mengindeks lampiran artikel pengetahuan, anda mesti mencipta tetapan tapak berikut dan tetapkan nilainya kepada Benar:

Tetapan tapak Perihalan
Carian/LampiranNotaIndeks Menunjukkan sama ada kandungan lampiran dalam artikel pangkalan pengetahuan perlu diindeks. Secara lalai, ia ditetapkan Salah.
PengurusanPengetahuan/NotaPaparan Menunjukkan sama ada untuk memaparkan lampiran artikel pangkalan pengetahuan. Secara lalai, ia ditetapkan Salah.

Apabila anda mencari istilah, hasil carian juga termasuk lampiran. Jika istilah carian sepadan dengan lampiran artikel pengetahuan, pautan ke artikel pangkalan pengetahuan yang sepadan juga disediakan. Untuk melihat lampiran yang boleh dimuat turun, pilih Muat turun di bawah Jenis Rekod dalam anak tetingkap kiri. Untuk mengubah suai label Muat turun, edit snippet kandungan Carian/Faset/Muat turun. Secara lalai, nilainya ditetapkan kepada Muat turun.

Nota

carian Dataverse mesti didayakan dalam persekitaran anda untuk menggunakan fungsi ini.

Cari melalui lampiran artikel pengetahuan

Jika tapak anda menggunakan carian Lucene .NET, anda boleh mendayakan tapak web untuk mencari melalui lampiran artikel pengetahuan dengan menetapkan pilihan Segerakan artikel pengetahuan kepada tapak kepada Ya dalam pusat pentadbiran Dynamics 365 Customer Service atau aplikasi Hab Khidmat Pelanggan. Anda tidak perlu mengkonfigurasikan pilihan ini jika tapak anda menggunakan carian Dataverse, anda akan dapat mencari melalui lampiran artikel pengetahuan secara lalai.

Ini membenarkan carian untuk melihat melalui lampiran artikel pengetahuan dan menjadikan maklumat mudah dicapai oleh pengguna pengetahuan. Dengan keupayaan lampiran ini, anda tidak perlu menggunakan lampiran nota untuk tapak. Lampiran artikel pengetahuan akan secara automatik disegerakan kepada lampiran nota. Maklumat lanjut: Kemas kini lampiran artikel pengetahuan untuk portal

Kemas kini konfigurasi tapak

Jika anda sudah mempunyai tapak web sebelum April 2018 dan anda telah menaik taraf tapak anda kepada versi terkini, anda mesti menggunakan konfigurasi berikut untuk mempunyai pengalaman pengguna yang sama seperti pemasangan portal yang baru.

Snippet Kandungan

Untuk mengubah suai label yang dipaparkan dalam hasil carian untuk catatan dan muat turun fail web, cipta snippet kandungan Carian/Faset/Muat turun dan kemudian tetapkan nilainya seperti yang dikehendaki. Nilai lalai ialah Muat turun.

Templat Web

Carian Faset - templat web Templat Hasil disemak untuk memaparkan fail yang dikaitkan dengan artikel pangkalan pengetahuan sebagai item hasil carian utama dengan pautan artikel berkaitan. Anda mesti mengemas kini Carian Faset - templat web Templat Hasil kepada sumber berikut:

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

Seting Tapak

Anda mesti menambah nilai \_logicalname:annotation~0.9^0.25 kepada tetapan tapak Carian/Pertanyaan. Selepas ditambah, nilainya adalah seperti berikut:

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

Untuk mengkonfigurasi faset kepada catatan kumpulan yang dikaitkan dengan artikel pangkalan pengetahuan dan fail web dalam faset tunggal, edit nama tetapan tapak Cari/EntitiFasetJenisRekod dan tambah ;Downloads:annotation,adx_webfile kepada nilainya.

Untuk membenarkan lampiran yang dikaitkan dengan artikel pengetahuan muncul dalam tapak web dan hasil carian, edit tetapan tapak PengurusanPengetahuan/PaparanNota dan tetapkan nilainya kepada Benar. Tetapan tapak PengurusanPengetahuan/PenapisNota mengandungi nilai awalan yang mesti dibubuh awalan kepada medan teks nota pada nota; hanya nota dengan nilai awalan khusus akan muncul pada tapak web. Secara lalai, nilainya adalah *WEB*, tetapi anda boleh mengubahnya melalui tetapan tapak.

Untuk membolehkan mengindeks lampiran fail yang berkaitan dengan nota, cipta tetapan tapak Carian/LampiranNotaIndeks dan tetapkan nilainya kepada Benar.