Config templates
info
The following content is for the new DocSearch infrastructure. If you haven't received an email to migrate your account yet, please refer to the legacy documentation.
To help you create the best search experience for your users, we provide config templates for multiple websites generators. If you'd like to add a new template to our list, or believe we should update an existing one, please send us an email or open a pull request
#
From the Crawler UITemplates are available when you create a new Crawler. They will automatically be filled with your website URL, Algolia credentials and index name.
#
Docusaurus v1 templatedocusaurus-v1.js
new Crawler({ appId: 'YOUR_APP_ID', apiKey: 'YOUR_API_KEY', rateLimit: 8, startUrls: [ 'https://YOUR_WEBSITE_URL/docs/', 'https://YOUR_WEBSITE_URL/', 'https://YOUR_WEBSITE_URL/blog/', ], sitemaps: ['https://YOUR_WEBSITE_URL/sitemap.xml'], ignoreCanonicalTo: false, discoveryPatterns: ['https://YOUR_WEBSITE_URL/**'], actions: [ { indexName: 'YOUR_INDEX_NAME', pathsToMatch: ['https://YOUR_WEBSITE_URL/docs/**'], recordExtractor: ({ $, helpers }) => { // Removing DOM elements we don't want to crawl const toRemove = '.hash-link'; $(toRemove).remove();
return helpers.docsearch({ recordProps: { lvl0: { selectors: '.navGroup > h3.collapsible', defaultValue: 'Blog', }, lvl1: '.post h1', lvl2: '.post h2', lvl3: '.post h3', lvl4: '.post h4', content: '.post article p, .post article li', tags: { defaultValue: ['docs'], }, }, indexHeadings: true, }); }, }, { indexName: 'YOUR_INDEX_NAME', pathsToMatch: ['https://YOUR_WEBSITE_URL/blog/**'], recordExtractor: ({ $, helpers }) => { // Removing DOM elements we don't want to crawl const toRemove = '.hash-link'; $(toRemove).remove();
return helpers.docsearch({ recordProps: { lvl0: { selectors: '.navGroup > h3.collapsible', defaultValue: 'Blog', }, lvl1: '.post h1', lvl2: '.post h2', lvl3: '.post h3', lvl4: '.post h4', content: '.post article p, .post article li', tags: { defaultValue: ['blog'], }, }, indexHeadings: true, }); }, }, ], initialIndexSettings: { YOUR_INDEX_NAME: { attributesForFaceting: ['type', 'lang', 'language', 'version', 'tags'], attributesToRetrieve: [ 'hierarchy', 'content', 'anchor', 'url', 'url_without_anchor', 'type', ], attributesToHighlight: ['hierarchy', 'hierarchy_camel', 'content'], attributesToSnippet: ['content:10'], camelCaseAttributes: ['hierarchy', 'hierarchy_radio', 'content'], searchableAttributes: [ 'unordered(hierarchy_radio_camel.lvl0)', 'unordered(hierarchy_radio.lvl0)', 'unordered(hierarchy_radio_camel.lvl1)', 'unordered(hierarchy_radio.lvl1)', 'unordered(hierarchy_radio_camel.lvl2)', 'unordered(hierarchy_radio.lvl2)', 'unordered(hierarchy_radio_camel.lvl3)', 'unordered(hierarchy_radio.lvl3)', 'unordered(hierarchy_radio_camel.lvl4)', 'unordered(hierarchy_radio.lvl4)', 'unordered(hierarchy_radio_camel.lvl5)', 'unordered(hierarchy_radio.lvl5)', 'unordered(hierarchy_radio_camel.lvl6)', 'unordered(hierarchy_radio.lvl6)', 'unordered(hierarchy_camel.lvl0)', 'unordered(hierarchy.lvl0)', 'unordered(hierarchy_camel.lvl1)', 'unordered(hierarchy.lvl1)', 'unordered(hierarchy_camel.lvl2)', 'unordered(hierarchy.lvl2)', 'unordered(hierarchy_camel.lvl3)', 'unordered(hierarchy.lvl3)', 'unordered(hierarchy_camel.lvl4)', 'unordered(hierarchy.lvl4)', 'unordered(hierarchy_camel.lvl5)', 'unordered(hierarchy.lvl5)', 'unordered(hierarchy_camel.lvl6)', 'unordered(hierarchy.lvl6)', 'content', ], distinct: true, attributeForDistinct: 'url', customRanking: [ 'desc(weight.pageRank)', 'desc(weight.level)', 'asc(weight.position)', ], ranking: [ 'words', 'filters', 'typo', 'attribute', 'proximity', 'exact', 'custom', ], highlightPreTag: '<span class="algolia-docsearch-suggestion--highlight">', highlightPostTag: '</span>', minWordSizefor1Typo: 3, minWordSizefor2Typos: 7, allowTyposOnNumericTokens: false, minProximity: 1, ignorePlurals: true, advancedSyntax: true, attributeCriteriaComputedByMinProximity: true, removeWordsIfNoResults: 'allOptional', }, },});
#
Docusaurus v2 templatedocusaurus-v2.js
new Crawler({ appId: 'YOUR_APP_ID', apiKey: 'YOUR_API_KEY', rateLimit: 8, startUrls: ['https://YOUR_WEBSITE_URL/'], sitemaps: ['https://YOUR_WEBSITE_URL/sitemap.xml'], ignoreCanonicalTo: true, discoveryPatterns: ['https://YOUR_WEBSITE_URL/**'], actions: [ { indexName: 'YOUR_INDEX_NAME', pathsToMatch: ['https://YOUR_WEBSITE_URL/**'], recordExtractor: ({ $, helpers }) => { return helpers.docsearch({ recordProps: { lvl0: { selectors: [ '.menu__link.menu__link--sublist.menu__link--active', '.navbar__item.navbar__link--active', ], defaultValue: 'Documentation', }, lvl1: 'header h1', lvl2: 'article h2', lvl3: 'article h3', lvl4: 'article h4', lvl5: 'article h5, article td:first-child', lvl6: 'article h6', content: 'article p, article li, article td:last-child', }, indexHeadings: true, }); }, }, ], initialIndexSettings: { YOUR_INDEX_NAME: { attributesForFaceting: [ 'type', 'lang', 'language', 'version', 'docusaurus_tag', ], attributesToRetrieve: [ 'hierarchy', 'content', 'anchor', 'url', 'url_without_anchor', 'type', ], attributesToHighlight: ['hierarchy', 'hierarchy_camel', 'content'], attributesToSnippet: ['content:10'], camelCaseAttributes: ['hierarchy', 'hierarchy_radio', 'content'], searchableAttributes: [ 'unordered(hierarchy_radio_camel.lvl0)', 'unordered(hierarchy_radio.lvl0)', 'unordered(hierarchy_radio_camel.lvl1)', 'unordered(hierarchy_radio.lvl1)', 'unordered(hierarchy_radio_camel.lvl2)', 'unordered(hierarchy_radio.lvl2)', 'unordered(hierarchy_radio_camel.lvl3)', 'unordered(hierarchy_radio.lvl3)', 'unordered(hierarchy_radio_camel.lvl4)', 'unordered(hierarchy_radio.lvl4)', 'unordered(hierarchy_radio_camel.lvl5)', 'unordered(hierarchy_radio.lvl5)', 'unordered(hierarchy_radio_camel.lvl6)', 'unordered(hierarchy_radio.lvl6)', 'unordered(hierarchy_camel.lvl0)', 'unordered(hierarchy.lvl0)', 'unordered(hierarchy_camel.lvl1)', 'unordered(hierarchy.lvl1)', 'unordered(hierarchy_camel.lvl2)', 'unordered(hierarchy.lvl2)', 'unordered(hierarchy_camel.lvl3)', 'unordered(hierarchy.lvl3)', 'unordered(hierarchy_camel.lvl4)', 'unordered(hierarchy.lvl4)', 'unordered(hierarchy_camel.lvl5)', 'unordered(hierarchy.lvl5)', 'unordered(hierarchy_camel.lvl6)', 'unordered(hierarchy.lvl6)', 'content', ], distinct: true, attributeForDistinct: 'url', customRanking: [ 'desc(weight.pageRank)', 'desc(weight.level)', 'asc(weight.position)', ], ranking: [ 'words', 'filters', 'typo', 'attribute', 'proximity', 'exact', 'custom', ], highlightPreTag: '<span class="algolia-docsearch-suggestion--highlight">', highlightPostTag: '</span>', minWordSizefor1Typo: 3, minWordSizefor2Typos: 7, allowTyposOnNumericTokens: false, minProximity: 1, ignorePlurals: true, advancedSyntax: true, attributeCriteriaComputedByMinProximity: true, removeWordsIfNoResults: 'allOptional', separatorsToIndex: '_', }, },});
#
Vuepress v1 templatevuepress-v1.js
new Crawler({ appId: 'YOUR_APP_ID', apiKey: 'YOUR_API_KEY', rateLimit: 8, startUrls: ['https://YOUR_WEBSITE_URL/'], sitemaps: ['https://YOUR_WEBSITE_URL/sitemap.xml'], ignoreCanonicalTo: false, discoveryPatterns: ['https://YOUR_WEBSITE_URL/**'], actions: [ { indexName: 'YOUR_INDEX_NAME', pathsToMatch: ['https://YOUR_WEBSITE_URL/**'], recordExtractor: ({ $, helpers }) => { return helpers.docsearch({ recordProps: { lvl0: { selectors: 'p.sidebar-heading.open', defaultValue: 'Documentation', }, lvl1: '.content__default h1', lvl2: '.content__default h2', lvl3: '.content__default h3', lvl4: '.content__default h4', lvl5: '.content__default h5', content: '.content__default p, .content__default li', }, indexHeadings: true, }); }, }, ], initialIndexSettings: { YOUR_INDEX_NAME: { attributesForFaceting: ['type', 'lang'], attributesToRetrieve: ['hierarchy', 'content', 'anchor', 'url'], attributesToHighlight: ['hierarchy', 'hierarchy_camel', 'content'], attributesToSnippet: ['content:10'], camelCaseAttributes: ['hierarchy', 'hierarchy_radio', 'content'], searchableAttributes: [ 'unordered(hierarchy_radio_camel.lvl0)', 'unordered(hierarchy_radio.lvl0)', 'unordered(hierarchy_radio_camel.lvl1)', 'unordered(hierarchy_radio.lvl1)', 'unordered(hierarchy_radio_camel.lvl2)', 'unordered(hierarchy_radio.lvl2)', 'unordered(hierarchy_radio_camel.lvl3)', 'unordered(hierarchy_radio.lvl3)', 'unordered(hierarchy_radio_camel.lvl4)', 'unordered(hierarchy_radio.lvl4)', 'unordered(hierarchy_radio_camel.lvl5)', 'unordered(hierarchy_radio.lvl5)', 'unordered(hierarchy_radio_camel.lvl6)', 'unordered(hierarchy_radio.lvl6)', 'unordered(hierarchy_camel.lvl0)', 'unordered(hierarchy.lvl0)', 'unordered(hierarchy_camel.lvl1)', 'unordered(hierarchy.lvl1)', 'unordered(hierarchy_camel.lvl2)', 'unordered(hierarchy.lvl2)', 'unordered(hierarchy_camel.lvl3)', 'unordered(hierarchy.lvl3)', 'unordered(hierarchy_camel.lvl4)', 'unordered(hierarchy.lvl4)', 'unordered(hierarchy_camel.lvl5)', 'unordered(hierarchy.lvl5)', 'unordered(hierarchy_camel.lvl6)', 'unordered(hierarchy.lvl6)', 'content', ], distinct: true, attributeForDistinct: 'url', customRanking: [ 'desc(weight.pageRank)', 'desc(weight.level)', 'asc(weight.position)', ], ranking: [ 'words', 'filters', 'typo', 'attribute', 'proximity', 'exact', 'custom', ], highlightPreTag: '<span class="algolia-docsearch-suggestion--highlight">', highlightPostTag: '</span>', minWordSizefor1Typo: 3, minWordSizefor2Typos: 7, allowTyposOnNumericTokens: false, minProximity: 1, ignorePlurals: true, advancedSyntax: true, attributeCriteriaComputedByMinProximity: true, removeWordsIfNoResults: 'allOptional', }, },});
#
Vuepress v2 templatevuepress-v2.js
new Crawler({ appId: 'YOUR_APP_ID', apiKey: 'YOUR_API_KEY', rateLimit: 8, startUrls: ['https://YOUR_WEBSITE_URL/'], sitemaps: ['https://YOUR_WEBSITE_URL/sitemap.xml'], ignoreCanonicalTo: false, discoveryPatterns: ['https://YOUR_WEBSITE_URL/**'], actions: [ { indexName: 'YOUR_INDEX_NAME', pathsToMatch: ['https://YOUR_WEBSITE_URL/**'], recordExtractor: ({ $, helpers }) => { return helpers.docsearch({ recordProps: { lvl0: { selectors: '.sidebar-heading.active', defaultValue: 'Documentation', }, lvl1: '.theme-default-content h1', lvl2: '.theme-default-content h2', lvl3: '.theme-default-content h3', lvl4: '.theme-default-content h4', lvl5: '.theme-default-content h5', content: '.theme-default-content p, .theme-default-content li', }, indexHeadings: true, }); }, }, ], initialIndexSettings: { YOUR_INDEX_NAME: { attributesForFaceting: ['type', 'lang'], attributesToRetrieve: ['hierarchy', 'content', 'anchor', 'url'], attributesToHighlight: ['hierarchy', 'hierarchy_camel', 'content'], attributesToSnippet: ['content:10'], camelCaseAttributes: ['hierarchy', 'hierarchy_radio', 'content'], searchableAttributes: [ 'unordered(hierarchy_radio_camel.lvl0)', 'unordered(hierarchy_radio.lvl0)', 'unordered(hierarchy_radio_camel.lvl1)', 'unordered(hierarchy_radio.lvl1)', 'unordered(hierarchy_radio_camel.lvl2)', 'unordered(hierarchy_radio.lvl2)', 'unordered(hierarchy_radio_camel.lvl3)', 'unordered(hierarchy_radio.lvl3)', 'unordered(hierarchy_radio_camel.lvl4)', 'unordered(hierarchy_radio.lvl4)', 'unordered(hierarchy_radio_camel.lvl5)', 'unordered(hierarchy_radio.lvl5)', 'unordered(hierarchy_radio_camel.lvl6)', 'unordered(hierarchy_radio.lvl6)', 'unordered(hierarchy_camel.lvl0)', 'unordered(hierarchy.lvl0)', 'unordered(hierarchy_camel.lvl1)', 'unordered(hierarchy.lvl1)', 'unordered(hierarchy_camel.lvl2)', 'unordered(hierarchy.lvl2)', 'unordered(hierarchy_camel.lvl3)', 'unordered(hierarchy.lvl3)', 'unordered(hierarchy_camel.lvl4)', 'unordered(hierarchy.lvl4)', 'unordered(hierarchy_camel.lvl5)', 'unordered(hierarchy.lvl5)', 'unordered(hierarchy_camel.lvl6)', 'unordered(hierarchy.lvl6)', 'content', ], distinct: true, attributeForDistinct: 'url', customRanking: [ 'desc(weight.pageRank)', 'desc(weight.level)', 'asc(weight.position)', ], ranking: [ 'words', 'filters', 'typo', 'attribute', 'proximity', 'exact', 'custom', ], highlightPreTag: '<span class="algolia-docsearch-suggestion--highlight">', highlightPostTag: '</span>', minWordSizefor1Typo: 3, minWordSizefor2Typos: 7, allowTyposOnNumericTokens: false, minProximity: 1, ignorePlurals: true, advancedSyntax: true, attributeCriteriaComputedByMinProximity: true, removeWordsIfNoResults: 'allOptional', }, },});
#
Vitepress templatevitepress.js
new Crawler({ appId: 'YOUR_APP_ID', apiKey: 'YOUR_API_KEY', rateLimit: 8, startUrls: ['https://YOUR_WEBSITE_URL/'], sitemaps: ['https://YOUR_WEBSITE_URL/sitemap.xml'], discoveryPatterns: ['https://YOUR_WEBSITE_URL/**'], actions: [ { indexName: 'YOUR_INDEX_NAME', pathsToMatch: ['https://YOUR_WEBSITE_URL/**'], recordExtractor: ({ $, helpers }) => { return helpers.docsearch({ recordProps: { lvl0: { selectors: '', defaultValue: 'Documentation', }, lvl1: '.content h1', lvl2: '.content h2', lvl3: '.content h3', lvl4: '.content h4', lvl5: '.content h5', content: '.content p, .content li', }, indexHeadings: true, }); }, }, ], initialIndexSettings: { YOUR_INDEX_NAME: { attributesForFaceting: ['type', 'lang'], attributesToRetrieve: ['hierarchy', 'content', 'anchor', 'url'], attributesToHighlight: ['hierarchy', 'hierarchy_camel', 'content'], attributesToSnippet: ['content:10'], camelCaseAttributes: ['hierarchy', 'hierarchy_radio', 'content'], searchableAttributes: [ 'unordered(hierarchy_radio_camel.lvl0)', 'unordered(hierarchy_radio.lvl0)', 'unordered(hierarchy_radio_camel.lvl1)', 'unordered(hierarchy_radio.lvl1)', 'unordered(hierarchy_radio_camel.lvl2)', 'unordered(hierarchy_radio.lvl2)', 'unordered(hierarchy_radio_camel.lvl3)', 'unordered(hierarchy_radio.lvl3)', 'unordered(hierarchy_radio_camel.lvl4)', 'unordered(hierarchy_radio.lvl4)', 'unordered(hierarchy_radio_camel.lvl5)', 'unordered(hierarchy_radio.lvl5)', 'unordered(hierarchy_radio_camel.lvl6)', 'unordered(hierarchy_radio.lvl6)', 'unordered(hierarchy_camel.lvl0)', 'unordered(hierarchy.lvl0)', 'unordered(hierarchy_camel.lvl1)', 'unordered(hierarchy.lvl1)', 'unordered(hierarchy_camel.lvl2)', 'unordered(hierarchy.lvl2)', 'unordered(hierarchy_camel.lvl3)', 'unordered(hierarchy.lvl3)', 'unordered(hierarchy_camel.lvl4)', 'unordered(hierarchy.lvl4)', 'unordered(hierarchy_camel.lvl5)', 'unordered(hierarchy.lvl5)', 'unordered(hierarchy_camel.lvl6)', 'unordered(hierarchy.lvl6)', 'content', ], distinct: true, attributeForDistinct: 'url', customRanking: [ 'desc(weight.pageRank)', 'desc(weight.level)', 'asc(weight.position)', ], ranking: [ 'words', 'filters', 'typo', 'attribute', 'proximity', 'exact', 'custom', ], highlightPreTag: '<span class="algolia-docsearch-suggestion--highlight">', highlightPostTag: '</span>', minWordSizefor1Typo: 3, minWordSizefor2Typos: 7, allowTyposOnNumericTokens: false, minProximity: 1, ignorePlurals: true, advancedSyntax: true, attributeCriteriaComputedByMinProximity: true, removeWordsIfNoResults: 'allOptional', }, },});
#
pkgdown templatepkgdown.js
new Crawler({ appId: 'YOUR_APP_ID', apiKey: 'YOUR_API_KEY', rateLimit: 8, startUrls: [ 'https://YOUR_WEBSITE_URL/index.html', 'https://YOUR_WEBSITE_URL/', 'https://YOUR_WEBSITE_URL/reference', 'https://YOUR_WEBSITE_URL/articles', ], sitemaps: ['https://YOUR_WEBSITE_URL/sitemap.xml'], exclusionPatterns: [ '**/reference/', '**/reference/index.html', '**/articles/', '**/articles/index.html', ], discoveryPatterns: ['https://YOUR_WEBSITE_URL/**'], actions: [ { indexName: 'YOUR_INDEX_NAME', pathsToMatch: ['https://YOUR_WEBSITE_URL/index.html**/**'], recordExtractor: ({ $, helpers }) => { // Removing DOM elements we don't want to crawl const toRemove = '.dont-index'; $(toRemove).remove();
return helpers.docsearch({ recordProps: { lvl0: { selectors: '.contents h1', defaultValue: 'YOUR_INDEX_NAME Home page', }, lvl1: '.contents h2', lvl2: '.contents h3', lvl3: '.ref-arguments td, .ref-description', content: '.contents p, .contents li, .contents .pre', tags: { defaultValue: ['homepage'], }, }, indexHeadings: { from: 2, to: 6 }, }); }, }, { indexName: 'YOUR_INDEX_NAME', pathsToMatch: ['https://YOUR_WEBSITE_URL/reference**/**'], recordExtractor: ({ $, helpers }) => { // Removing DOM elements we don't want to crawl const toRemove = '.dont-index'; $(toRemove).remove();
return helpers.docsearch({ recordProps: { lvl0: { selectors: '.contents h1', }, lvl1: '.contents .name', lvl2: '.ref-arguments th', lvl3: '.ref-arguments td, .ref-description', content: '.contents p, .contents li', tags: { defaultValue: ['reference'], }, }, indexHeadings: { from: 2, to: 6 }, }); }, }, { indexName: 'YOUR_INDEX_NAME', pathsToMatch: ['https://YOUR_WEBSITE_URL/articles**/**'], recordExtractor: ({ $, helpers }) => { // Removing DOM elements we don't want to crawl const toRemove = '.dont-index'; $(toRemove).remove();
return helpers.docsearch({ recordProps: { lvl0: { selectors: '.contents h1', }, lvl1: '.contents .name', lvl2: '.contents h2, .contents h3', content: '.contents p, .contents li', tags: { defaultValue: ['articles'], }, }, indexHeadings: { from: 2, to: 6 }, }); }, }, ], initialIndexSettings: { YOUR_INDEX_NAME: { attributesForFaceting: ['type', 'lang'], attributesToRetrieve: [ 'hierarchy', 'content', 'anchor', 'url', 'url_without_anchor', ], attributesToHighlight: ['hierarchy', 'hierarchy_camel', 'content'], attributesToSnippet: ['content:10'], camelCaseAttributes: ['hierarchy', 'hierarchy_radio', 'content'], searchableAttributes: [ 'unordered(hierarchy_radio_camel.lvl0)', 'unordered(hierarchy_radio.lvl0)', 'unordered(hierarchy_radio_camel.lvl1)', 'unordered(hierarchy_radio.lvl1)', 'unordered(hierarchy_radio_camel.lvl2)', 'unordered(hierarchy_radio.lvl2)', 'unordered(hierarchy_radio_camel.lvl3)', 'unordered(hierarchy_radio.lvl3)', 'unordered(hierarchy_radio_camel.lvl4)', 'unordered(hierarchy_radio.lvl4)', 'unordered(hierarchy_radio_camel.lvl5)', 'unordered(hierarchy_radio.lvl5)', 'unordered(hierarchy_radio_camel.lvl6)', 'unordered(hierarchy_radio.lvl6)', 'unordered(hierarchy_camel.lvl0)', 'unordered(hierarchy.lvl0)', 'unordered(hierarchy_camel.lvl1)', 'unordered(hierarchy.lvl1)', 'unordered(hierarchy_camel.lvl2)', 'unordered(hierarchy.lvl2)', 'unordered(hierarchy_camel.lvl3)', 'unordered(hierarchy.lvl3)', 'unordered(hierarchy_camel.lvl4)', 'unordered(hierarchy.lvl4)', 'unordered(hierarchy_camel.lvl5)', 'unordered(hierarchy.lvl5)', 'unordered(hierarchy_camel.lvl6)', 'unordered(hierarchy.lvl6)', 'content', ], distinct: true, attributeForDistinct: 'url', customRanking: [ 'desc(weight.pageRank)', 'desc(weight.level)', 'asc(weight.position)', ], ranking: [ 'words', 'filters', 'typo', 'attribute', 'proximity', 'exact', 'custom', ], highlightPreTag: '<span class="algolia-docsearch-suggestion--highlight">', highlightPostTag: '</span>', minWordSizefor1Typo: 3, minWordSizefor2Typos: 7, allowTyposOnNumericTokens: false, minProximity: 1, ignorePlurals: true, advancedSyntax: true, attributeCriteriaComputedByMinProximity: true, removeWordsIfNoResults: 'allOptional', separatorsToIndex: '_', }, },});