跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 用 js 撸了一个嵌入式的搜索引擎
未分類
3 4 月 2020

用 js 撸了一个嵌入式的搜索引擎

用 js 撸了一个嵌入式的搜索引擎

資深大佬 : yuankui 19

目前个人打算用于 electron 做的知识管理软件的文章搜索。

主要基于
1. rocksDB
2. roaring(bitmap)
3. jiebanode(分词)
4. rxjs

https://github.com/yuankui/loosenjs
(Lucene 谐音,我是不是很无耻。。)

目前还在开发中,但是架子基本完成。

1. 支持全文搜索
2. 支持整数的过滤,排序
3. 高度可扩展(有兴趣自己看代码)

在开发之前,我也调研过其他的库。比如
lunr:大致看了下,他好像全是基于内存的,序列化保存到磁盘的成本有点?相比之下,loosenjs 是基于 rocksdb,磁盘+内存,支持增量更新。

不知道大家有兴趣,如果有兴趣,我后面可以准备写一个系列文章,来介绍下原理和该库的正确打开方式。

大佬有話說 (13)

  • 資深大佬 : freshgoose

    我觉得,起码得有个演示吧……光听你说实在没啥直观的感受。

  • 資深大佬 : aloo

    先 Star 为敬

  • 資深大佬 : zhuangzhuang1988

    http://elasticlunr.com/
    这个呢..

  • 主 資深大佬 : yuankui

    @freshgoose
    写入 doc: https://github.com/yuankui/loosenjs/blob/master/src/Index.spec.ts#L43
    搜索: https://github.com/yuankui/loosenjs/blob/master/src/Index.spec.ts#L95

  • 主 資深大佬 : yuankui

    @zhuangzhuang1988 我研究下,感谢

  • 主 資深大佬 : yuankui

    @aloo 我就喜欢老哥这样的人

  • 資深大佬 : icu996

    query 改写怎么玩耍的呢,顺便问句是只有倒排召回么

  • 主 資深大佬 : yuankui

    @icu996

    > query 改写怎么玩耍的呢
    这个挺好支持的。
    后面可以在这里加个 query-rewrite 的 hook 。然后用户就可以自己插入 query 改写的逻辑了。
    https://github.com/yuankui/loosenjs/blob/master/src/hooks/field-types/text-type/TextField.ts#L81

    > 顺便问句是只有倒排召回么
    支持正排过滤,如果没有设置 query,就召回全部 doc-list,然后根据正排进行过滤,分页。

  • 資深大佬 : icu996

    @yuankui 召回这里也许可以添加其他维度的召回逻辑,比如 faiss 召回、精准召回等等,这样几种召回逻辑可以互为补充,提升召回结果;

  • 主 資深大佬 : yuankui

    @icu996 遇到大佬了,感谢大佬指点。
    我其实没搞过搜索引擎,faiss,精准召回都没听过,回头看下相关资料。
    我理解可以把找召回我单独抽象成一个接口,然后运行时根据参数,动态选择一个合适的召回实现,然后进行召回。

  • 主 資深大佬 : yuankui

    @icu996 后续完善下这块

  • 資深大佬 : cherryas

    mark 半年后再来看

  • 主 資深大佬 : yuankui

    @cherryas 有更新了 通知你

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具