Skip to content

Commit a3303d1

Browse files
authored
feat: add search filters (#3340)
* feat: add search filters * fix: add missing filter variable
1 parent f7d6641 commit a3303d1

File tree

2 files changed

+30
-8
lines changed

2 files changed

+30
-8
lines changed

doc/_static/kendrasearchtools.js

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -533,11 +533,19 @@ var KendraSearch = {
533533
_pulse_status : -1,
534534

535535
init : function() {
536+
var filters = {};
536537
var params = $.getQueryParameters();
537538
if (params.q) {
538539
var query = params.q[0];
539540
$('input[name="q"]')[0].value = query;
540-
this.performSearch(query);
541+
542+
Object.keys(params).forEach(function(key) {
543+
if(key.startsWith("filter")){
544+
filters[key] = true;
545+
$('input[name="' + key + '"]')[0].checked = true;
546+
}
547+
});
548+
this.performSearch(query, filters=filters);
541549
}
542550
},
543551

@@ -577,16 +585,16 @@ var KendraSearch = {
577585
/**
578586
* execute search (requires search index to be loaded)
579587
*/
580-
query : function(query, pageNumber, pageSize=10) {
581-
var url = " https://9cs56celvj.execute-api.us-west-2.amazonaws.com/prod"
588+
query : function(query, pageNumber, pageSize=10, filters={}) {
589+
var url = "https://9cs56celvj.execute-api.us-west-2.amazonaws.com/prod"
582590

583591
$('#search-progress').empty();
584592

585593
query = KendraSearch.sanitize(query);
586594

587595
fetch(url, {
588596
method: 'post',
589-
body: JSON.stringify({ "queryText": query , "pageNumber": pageNumber, "pageSize": pageSize, "host": window.location.host}),
597+
body: JSON.stringify({ "queryText": query , "pageNumber": pageNumber, "pageSize": pageSize, "filters": filters, "host": window.location.host}),
590598
}).then(response => response.json())
591599
.then(function(data) {
592600
var docs = data["ResultItems"];
@@ -602,7 +610,7 @@ var KendraSearch = {
602610
if(doc_url.includes("sagemaker-examples.readthedocs.io")){
603611
type_badge_html = '<span class="example-badge">Example</span>'
604612
}else if(doc_url.includes("docs.aws.amazon.com")){
605-
type_badge_html = '<span class="aws-doc-badge">AWS Dev Guide</span>'
613+
type_badge_html = '<span class="aws-doc-badge">Dev Guide</span>'
606614
}else if(doc_url.includes("sagemaker.readthedocs.io") || doc_url.includes("sagemaker-debugger.readthedocs.io")){
607615
type_badge_html = '<span class="sdk-doc-badge">SDK Guide</span>'
608616
}
@@ -656,7 +664,7 @@ var KendraSearch = {
656664
$(element).on('click', function() {
657665
KendraSearch.output.empty();
658666
paginationItem.remove();
659-
KendraSearch.query(query, parseInt($(element).attr('id').split("-")[1]));
667+
KendraSearch.query(query, parseInt($(element).attr('id').split("-")[1]), pageSize, filters);
660668
});
661669
});
662670
}
@@ -670,7 +678,7 @@ var KendraSearch = {
670678
/**
671679
* perform a search for something (or wait until index is loaded)
672680
*/
673-
performSearch : function(query) {
681+
performSearch : function(query, filters) {
674682
// create the required interface elements
675683
this.out = $('#search-results');
676684
this.title = $('<h2>' + _('Searching...') + '</h2>').appendTo(this.out);
@@ -682,7 +690,7 @@ var KendraSearch = {
682690
$('#search-progress').text(_('Preparing search...'));
683691
this.startPulse();
684692

685-
this.query(query, 1)
693+
this.query(query, 1, pageSize=10, filters=filters)
686694
},
687695

688696
};

doc/_templates/searchbox.html

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<div role="search">
2+
<form id ="rtd-search-form" class="wy-form" action="{{ pathto('search') }}" method="get">
3+
<input type="text" name="q" placeholder="{% trans %}ex. train object detection model, pd.concat{% endtrans %}" title="{% trans %}Type search term here{% endtrans %}" />
4+
<br />
5+
<br />
6+
<div style="text-align: left;">
7+
<div style="font-size: 0.85rem;">Filters: </div>
8+
<div style="display: inline-block;"><label style="color: white;" for="filterExample"><input type="checkbox" id="filterExample" name="filterExample">Example</label></div>
9+
<div style="display: inline-block;"><label style="color: white;" for="filterAWSDevGuide"><input type="checkbox" id="filterAWSDevGuide" name="filterAWSDevGuide">Dev Guide</label></div>
10+
<div style="display: inline-block;"><label style="color: white;" for="filterSDKGuide"><input type="checkbox" id="filterSDKGuide" name="filterSDKGuide">SDK Guide</label></div>
11+
</div>
12+
13+
</form>
14+
</div>

0 commit comments

Comments
 (0)