我以这种方式创建并保存我的 lunr 索引:
require("lunr-languages/lunr.stemmer.support")(lunr);
require("lunr-languages/lunr.multi")(lunr);
require("lunr-languages/lunr.it")(lunr);
const englishItalianSupport = lunr.multiLanguage("en", "it");
let fullTextIndex = lunr(function() {
this.use(englishItalianSupport);
this.pipeline.add(improvedTrimmer); // I think this does not matter
this.ref("id");
this.field("body");
this.metadataWhitelist = ["position"];
this.add({...});
...
}
然后我保存它以在以下会话中重复使用。
在lunr-languages/README.md
里面有这一行:
如果您序列化索引并将其加载到另一个脚本中,您还必须在该脚本中初始化多语言支持,如下所示:
lunr.multiLanguage('en', 'it'); var idx = lunr.Index.load(serializedIndex);
需要这个吗?此行生成警告:Overwriting existing registered function: lunr-multi-trimmer-en-it
。请记住,此警告是this.use()
在索引生成期间调用生成的,然后将其移出lunr()
调用。
improvedTrimmer
另外,我应该在加载索引时引用我的吗?如果是,如何?
感谢您的澄清!