- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
08-31-2023 09:20 AM
検索結果の表示順は "Frequency", "Sequence", "Weight" によって算出されたスコアによって定まり、OOTBの機能では並べ替え順序を制御することはできません。
https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0686128
ソート処理を追加したい場合には faceted_search をClone Widget し、ご自身でカスタマイズする必要があります。
カスタマイズには AngularJS の知識が必要です。私も詳しくはないですが、自前の環境(バージョンTokyo)で確認した内容を記載します。
Client Script(以下を5行目辺りに挿入する)
// ソート順を指定するためのプルダウンを定義する
$scope.sortOptions = [
{ label: '-', value: 'parseFloat(score)'},
{ label: 'A to Z', value: 'short_description' },
{ label: 'Z to A', value: '-short_description' }
];
// デフォルトは一番目(スコア)の順にソートする
$scope.selectedSortOrder = $scope.sortOptions[0].value;
HTML Templateその①(3行目以降の<div class="row header">〜</div>の部分を書き換える)
<div class="row header">
<div class="col-md-6">
<sp-widget widget="data.breadcrumbsWidget"></sp-widget>
</div>
<div class="col-md-2">
<select ng-model="selectedSortOrder" ng-options="option.value as option.label for option in sortOptions"></select>
</div>
<div class="col-md-4" ng-if="data.showTypeaheadSearch">
<sp-widget widget="data.typeaheadSearchWidget"></sp-widget>
</div>
</div>
HTML Templateその②(<div role="listitem" 〜> の行を書き換える)
<div role="listitem" ng-repeat="item in results | orderBy: selectedSortOrder" class="panel-body b-b result-item" ng-click="sendAnalytics(item, $index)">
以上を施したWidgetを既存のものと差し替えることで、Short Descriptionでソート可能なプルダウンメニューを検索窓の横に追加できます。
シンプルですが、カスタマイズのご参考までに。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
08-31-2023 09:20 AM
検索結果の表示順は "Frequency", "Sequence", "Weight" によって算出されたスコアによって定まり、OOTBの機能では並べ替え順序を制御することはできません。
https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0686128
ソート処理を追加したい場合には faceted_search をClone Widget し、ご自身でカスタマイズする必要があります。
カスタマイズには AngularJS の知識が必要です。私も詳しくはないですが、自前の環境(バージョンTokyo)で確認した内容を記載します。
Client Script(以下を5行目辺りに挿入する)
// ソート順を指定するためのプルダウンを定義する
$scope.sortOptions = [
{ label: '-', value: 'parseFloat(score)'},
{ label: 'A to Z', value: 'short_description' },
{ label: 'Z to A', value: '-short_description' }
];
// デフォルトは一番目(スコア)の順にソートする
$scope.selectedSortOrder = $scope.sortOptions[0].value;
HTML Templateその①(3行目以降の<div class="row header">〜</div>の部分を書き換える)
<div class="row header">
<div class="col-md-6">
<sp-widget widget="data.breadcrumbsWidget"></sp-widget>
</div>
<div class="col-md-2">
<select ng-model="selectedSortOrder" ng-options="option.value as option.label for option in sortOptions"></select>
</div>
<div class="col-md-4" ng-if="data.showTypeaheadSearch">
<sp-widget widget="data.typeaheadSearchWidget"></sp-widget>
</div>
</div>
HTML Templateその②(<div role="listitem" 〜> の行を書き換える)
<div role="listitem" ng-repeat="item in results | orderBy: selectedSortOrder" class="panel-body b-b result-item" ng-click="sendAnalytics(item, $index)">
以上を施したWidgetを既存のものと差し替えることで、Short Descriptionでソート可能なプルダウンメニューを検索窓の横に追加できます。
シンプルですが、カスタマイズのご参考までに。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
09-14-2023 04:16 AM