addsearch-search-ui
Version:
JavaScript library to develop Search UIs for the web
154 lines (128 loc) • 4.22 kB
HTML
<html lang="en">
<head>
<title>AddSearch Search UI: Segmented search</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta charset="UTF-8">
<link href="https://fonts.googleapis.com/css?family=Lato:300,400,700&display=swap" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/addsearch-js-client@0.6/dist/addsearch-js-client.min.js"></script>
<script src="../../dist/addsearch-search-ui.min.js"></script>
<link rel="stylesheet" href="../../dist/addsearch-search-ui.min.css" />
<style type="text/css">
body {
font-family: 'Lato', sans-serif;
min-width: 320px;
}
#searchfield {
margin: 20px;
}
main {
display: flex;
}
section {
background-color: #f7f7f7;
padding: 20px;
margin: 20px;
}
</style>
</head>
<body>
<!-- Containers. Search UI components will be added inside these divs -->
<div id="searchfield"></div>
<main>
<section>
<h2>All results</h2>
<div id="all-results"></div>
</section>
<section>
<h2>Results from blog</h2>
<div id="blog-results"></div>
</section>
<section>
<h2>Results from docs</h2>
<div id="docs-results"></div>
</section>
</main>
<script>
// AddSearch JS client with an example index. Get your own SITEKEY by signing up at www.addsearch.com
var client = new AddSearchClient('2c32bf3eb06b30af5f8208481aea3e8b');
// Each segment requires dedicated client with appropriate filters etc.
var allResultsClient = new AddSearchClient('2c32bf3eb06b30af5f8208481aea3e8b');
allResultsClient.setPaging(1, 4, 'relevance', 'desc');
var blogClient = new AddSearchClient('2c32bf3eb06b30af5f8208481aea3e8b');
blogClient.setFilterObject({"category": "1xblog"});
blogClient.setPaging(1, 4, 'relevance', 'desc');
var docsClient = new AddSearchClient('2c32bf3eb06b30af5f8208481aea3e8b');
docsClient.setFilterObject({"category": "1xdocs"});
docsClient.setPaging(1, 4, 'relevance', 'desc');
// Search UI instance
var searchui = new AddSearchUI(client);
// Add components
searchui.searchField({
containerId: 'searchfield',
placeholder: 'Keyword..',
button: 'Search',
searchAsYouType: true
});
var allTemplate = `
<div class="addsearch-searchresults">
{{#each all-results/hits}}
<div class="hit">
<h3>
<a href="{{url}}" data-analytics-click="{{id}}">{{title}}</a>
</h3>
<div class="highlight">
{{{highlight}}}..
</div>
</div>
{{/each}}
</div>
`;
var blogTemplate = `
<div class="addsearch-searchresults">
{{#each blog-results/hits}}
<div class="hit">
<h3>
<a href="{{url}}" data-analytics-click="{{id}}">{{title}}</a>
</h3>
<div class="highlight">
{{{highlight}}}..
</div>
</div>
{{/each}}
</div>
`;
var docsTemplate = `
<div class="addsearch-searchresults">
{{#each docs-results/hits}}
<div class="hit">
<h3>
<a href="{{url}}" data-analytics-click="{{id}}">{{title}}</a>
</h3>
<div class="highlight">
{{{highlight}}}..
</div>
</div>
{{/each}}
</div>
`;
searchui.segmentedSearchResults({
containerId: 'all-results',
template: allTemplate,
client: allResultsClient
});
searchui.segmentedSearchResults({
containerId: 'blog-results',
template: blogTemplate,
client: blogClient
});
searchui.segmentedSearchResults({
containerId: 'docs-results',
template: docsTemplate,
client: docsClient
});
// All components added. Start
searchui.start();
</script>
</body>
</html>