请问Obsidian 这样的笔记软件是怎么做到高效搜索的?

请问一下:
1、请问Obsidian 这样的笔记软件是怎么做到高效搜索的?
2、Obsidian 这样的笔记软件是否有一个数据库来进行存储索引保存的文件?
3、如果我们想要这样检索,是否有开源的库(npm库,因为obsidian是electron项目)来做检索呢?

阅读 2.6k
1 个回答

用的全文搜索引擎。全文搜索引擎会对所有文档进行索引,然后把文档里的每个词和其它出现的文档关联起来,然后用户搜索时候,搜索引擎会很快的查找索引然后返回相关的一些文档。具体用的是用倒排索引结构,数据库的话可能是轻量的嵌入式数据库比如SQLite,推荐库可以用lunr.jselasticlunr
比如lunr.js在node环境下:

const lunr = require('lunr');
const index = lunr(function () {
  this.field('title');
  this.field('content');
  this.add({ title: 'Example', content: 'This is an example document', id: 1 });
});
const results = index.search('example');
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题