uttori-search-provider-lunr

Uttori search provider powered by Lunr.

Usage no npm install needed!

<script type="module">
  import uttoriSearchProviderLunr from 'https://cdn.skypack.dev/uttori-search-provider-lunr';
</script>

README

view on npm npm module downloads Build Status Dependency Status Coverage Status

Uttori Search Provider - Lunr

Uttori Search Provider powered by Lunr.js.

Install

npm install --save uttori-search-provider-lunr

API Reference

SearchProvider

Uttori Search Provider powered by Lunr.js.

Kind: global class
Properties

Name Type Description
searchTerms Object The collection of search terms and their counts.
index Object The Lunr instance.

new SearchProvider([config])

Creates an instance of SearchProvider.

Param Type Default Description
[config] Object {} Configuration object for the class.
[config.lunr_locales] Array.<string> [] A list of locales to add support for from lunr-languages.

Example (Init SearchProvider)

const searchProvider = new SearchProvider();
const searchProvider = new SearchProvider({ lunr_locales: ['de', 'fr', 'jp'] });

searchProvider.setup([config])

Setup the search provider by building an index of documents.

Kind: instance method of SearchProvider

Param Type Default Description
[config] Object {} Configuration object for setup.
[config.documents] Array.<UttoriDocument> [] An array of documents to be indexed.

Example

searchProvider.setup({ documents: [{ slug: 'intro', title: 'Intro', content: '...', tags: ['intro'] }] });

searchProvider.search(query, [limit]) ⇒ Array.<Object>

External method for searching documents matching the provided query and updates the count for the query used. Uses the internalSearch method internally.

Kind: instance method of SearchProvider
Returns: Array.<Object> - - Returns an array of search results no longer than limit.

Param Type Default Description
query string The value to search for.
[limit] number 100 Limit for the number of returned documents.

Example

searchProvider.search('matching');
➜ [{ ref: 'first-matching-document', ... }, { ref: 'another-matching-document', ... }, ...]

searchProvider.internalSearch(query, [limit]) ⇒ Array.<Object>

Searches for documents matching the provided query with Lunr.

Kind: instance method of SearchProvider
Returns: Array.<Object> - - Returns an array of search results no longer than limit.
Access: private

Param Type Default Description
query string The value to search for.
[limit] number 100 Limit for the number of returned documents.

searchProvider.indexAdd([documents])

Unused: Adds documents to the index.

Kind: instance method of SearchProvider

Param Type Default Description
[documents] Array.<UttoriDocument> [] An array of documents to be indexed.

searchProvider.indexUpdate([documents])

Unused: Updates documents in the index.

Kind: instance method of SearchProvider

Param Type Default Description
[documents] Array.<UttoriDocument> [] An array of documents to be indexed.

searchProvider.indexRemove([documents])

Unused: Removes documents from the index.

Kind: instance method of SearchProvider

Param Type Default Description
[documents] Array.<UttoriDocument> [] An array of documents to be indexed.

searchProvider.updateTermCount(query)

Updates the search query in the query counts.

Kind: instance method of SearchProvider

Param Type Description
query string The query to increment.

searchProvider.getPopularSearchTerms([limit]) ⇒ Array.<string>

Returns the most popular search terms.

Kind: instance method of SearchProvider
Returns: Array.<string> - - Returns an array of search results no longer than limit.

Param Type Default Description
[limit] number 10 Limit for the number of returned popular searches.

Example

searchProvider.getPopularSearchTerms();
➜ ['popular', 'cool', 'helpful']

searchProvider.shouldAugment([query], [fields]) ⇒ boolean

Determines if a given search query needs to have fields augmented.

Kind: instance method of SearchProvider
Returns: boolean - - Returns true. Lunr does not return all of the required fields for displaing search results.

Param Type Description
[query] string Unused: the query to check for augmentation.
[fields] Array.<string> Unused: the fields required to be on the documents.

Tests

To run the test suite, first install the dependencies, then run npm test:

npm install
npm test
DEBUG=Uttori* npm test

Contributors

License