diff options
Diffstat (limited to 'docs/_book/gitbook/gitbook-plugin-search/search-engine.js')
-rw-r--r-- | docs/_book/gitbook/gitbook-plugin-search/search-engine.js | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/docs/_book/gitbook/gitbook-plugin-search/search-engine.js b/docs/_book/gitbook/gitbook-plugin-search/search-engine.js new file mode 100644 index 0000000..5088346 --- /dev/null +++ b/docs/_book/gitbook/gitbook-plugin-search/search-engine.js @@ -0,0 +1,50 @@ +require([ + 'gitbook', + 'jquery' +], function(gitbook, $) { + // Global search objects + var engine = null; + var initialized = false; + + // Set a new search engine + function setEngine(Engine, config) { + initialized = false; + engine = new Engine(config); + + init(config); + } + + // Initialize search engine with config + function init(config) { + if (!engine) throw new Error('No engine set for research. Set an engine using gitbook.research.setEngine(Engine).'); + + return engine.init(config) + .then(function() { + initialized = true; + gitbook.events.trigger('search.ready'); + }); + } + + // Launch search for query q + function query(q, offset, length) { + if (!initialized) throw new Error('Search has not been initialized'); + return engine.search(q, offset, length); + } + + // Get stats about search + function getEngine() { + return engine? engine.name : null; + } + + function isInitialized() { + return initialized; + } + + // Initialize gitbook.search + gitbook.search = { + setEngine: setEngine, + getEngine: getEngine, + query: query, + isInitialized: isInitialized + }; +});
\ No newline at end of file |