import { create, search as oramaSearch, insertMultiple, } from "https://cdn.jsdelivr.net/npm/@orama/orama@latest/+esm"; // "https://unpkg.com/browse/@orama/orama@latest/dist/esm/index.js"; // https://cdn.jsdelivr.net/npm/@orama/orama@3.0.1/dist/esm/index.js //import { createTokenizer } from '@orama/tokenizers/japanese' //import { stopwords as japaneseStopwords } from "@orama/stopwords/japanese"; let searchEngine = null; async function init() { async function initIndex( index ){ searchEngine = await create({ schema: { title: 'string', content: 'string', uri: 'string', breadcrumb: 'string', description: 'string', tags: 'string[]', }, /* defaultLanguage: 'french', components: { tokenizer: { stemmingFn: stemmer, }, }, */ }); await insertMultiple(searchEngine, index); window.relearn.isSearchEngineReady = true; window.relearn.executeInitialSearch(); } if( window.index_js_url ){ var js = document.createElement("script"); js.src = index_js_url; js.setAttribute("async", ""); js.onload = function(){ initIndex(relearn_searchindex); }; js.onerror = function(e){ console.error('Error getting Hugo index file'); }; document.head.appendChild(js); } } async function search( term ){ const searchResponse = await oramaSearch(searchEngine, {term: term, properties: '*'}); return searchResponse.hits.map( hit => ({ page: hit.document }) ); } export { init, search };