Căutare în fișierul atașat al articolului de cunoștințe
Aveți posibilitatea să utilizați fișierul atașat al articolului de cunoștinșe pentru a include fișierele descărcabile în articolele din baza de cunoștințe. Puteți utiliza, de asemenea, fișiere de web pentru a crea o pagina de FAQ cu conținut descărcabil.
Important
Doar fișierele care sunt atașate la articolele din baza de cunoștințe pot fi căutate. Fișierele care sunt atașate la fișierele web nu pot fi căutate.
Aveți posibilitatea să configurați site-ul Power Pages pentru a permite utilizatorilor să caute în fișierul atașat al articolelor din baza de cunoștințe. Acest lucru ajută utilizatorii să găsească informațiile pe care le caută.
În articolele din baza de cunoștințe, orice fișier atașat cu prefixul definit este indexat.
Pentru a indexa fișierele atașate ale articolelor de cunoștințe, trebuie să creați următoarele setări de site și să le setați valoarea la Adevărat:
Setare de site | Descriere |
---|---|
Căutare/IndexNotesAttachments | Indică dacă conținutul fișierelor atașate din articolele din baza de cunoștințe ar trebui indexat. În mod implicit, acesta este setat ca Fals. |
KnowledgeManagement/DisplayNotes | Indică dacă se afișează fișierele atașate ale articolelor din baza de cunoștințe. În mod implicit, acesta este setat ca Fals. |
Când căutați un termen, rezultatele de căutare includ, de asemenea, atașamente. Dacă termenul de căutare se potrivește cu un fișier atașat de articol de cunoștințe, este oferit și link-ul către articolul corespunzător din baza de cunoștințe. Pentru a vedea atașamentele descărcabile, selectați Descărcări sub Tip înregistrare în panoul din stânga. Pentru a modifica eticheta Descărcări, editați fragmentul de conținut Căutare/fațetă/descărcări. În mod implicit, valoarea este setată la Descărcări.
Notă
Căutarea Dataverse trebuie să fie activată în mediul dumneavoastră pentru a utiliza această funcționalitate.
Căutați prin fișierele atașate ale articolelor de cunoștințe
Dacă site-ul dvs. folosește căutarea Lucene .NET , puteți activa site-ul web să caute prin fișierele atașate ale articolelor de cunoștințe prin setarea Sincronizați fișierele atașate ale articolelor de cunoștințe cu opțiunea site-ului la Da în centrul de administrare Dynamics 365 Customer Service sau în aplicația Hub pentru Customer Service. Nu trebuie să configurați această opțiune dacă site-ul dvs. folosește căutarea Dataverse, veți putea căuta în mod implicit prin fișierele atașate ale articolelor de cunoștințe.
Acest lucru permite căutării să caute prin fișierele atașate ale articolelor de cunoștințe și să facă informațiile ușor accesibile consumatorilor de cunoștințe. Cu această capacitate de atașare, va trebui să nu mai utilizați fișiere atașate sub formă de note pentru site. Atașamentele articolelor de cunoștințe vor fi sincronizate automat cu atașamentul de note. Mai multe informații: Actualizați atașările fișierelor cu articole pentru portal
Actualizați configurația site-ului
Dacă aveți deja un site web creat înainte de aprilie 2018 și ați actualizat site-ul la ultima versiune, trebuie să utilizați următoarele configurații pentru a avea aceeași experiență de utilizator ca la o instalare nouă.
Fragmente de conținut
Pentru a modifica eticheta afișată în rezultatele de căutare pentru adnotări și descărcări de fișiere web, creați un fragment de conținut Căutare/Fațetă/Descărcări, și apoi setați valoarea după caz. Valoarea implicită este Descărcări.
Șabloane web
Șablonul web Căutare fațetată - Șablon Rezultate este revizuit pentru a afișa fișierele asociate cu articole din baza de cunoștințe ca elemente rezultate ale căutării primare cu un link de articol aferent. Trebuie să actualizați șablonul web Căutare fațetată - Șablon Rezultate la sursa de următoarele:
{% 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> {{title}}</a>
{{else}}
<a title="{{title}}" href="{{absoluteUrl}}"><span class="glyphicon glyphicon-file" aria-hidden="true"></span> {{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> {{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> {{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%}
Setări de site
Trebuie să adăugați valoarea \_logicalname:annotation~0.9^0.25
la setarea Căutare/Interogare a site-ului. După ce se adaugă, valoarea trebuie să fie după cum urmează:
+(@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
Pentru a configura fațetele pentru a grupa adnotări asociate cu articole din baza de cunoștințe și fișiere de web într-o singură fațetă, editați numele de setare al site-ului Căutare/RecordTypeFacetsEntities și adăugați ;Downloads:annotation,adx_webfile
la valoarea lor.
Pentru a permite ca fișierele atașate asociate cu articole de cunoștințe să apară pe site-ul web și rezultatele de căutare, editați setarea de site KnowledgeManagement/DisplayNotes și setați valoarea sa la Adevărat. Setarea de site KnowledgeManagement/NotesFilter conține o valoare prefix care trebuie să fie prefixată la câmpul de text al notei în cazul notelor; numai notele cu valoarea de prefix specificată vor apărea pe site-ul web. Implicit, valoarea este *WEB*, dar aveți posibilitatea să o modificați prin setarea de site.
Pentru a activa indexarea fișierelor atașate asociate cu note, creați setarea de site Căutare/IndexNotesAttachments și setați valoarea acesteia la Adevărat.