业余开发了一个技术搜索引擎,请小伙伴们提提意见。

2019-06-16 21:48:16 +08:00
 nyfok

如题,最近业余开发了一个搜索引擎,面向程序员领域,收录了国内技术网站和国外 github,stackoverflow 等网站。解决国内不能访问 google 的痛点,以及某些搜索广告太多的问题。

纯粹手痒,做着玩玩看,目前蜘蛛的索引面还在不断增加中。在开发过程中优化了分词和 ranking 的算法,如果谁有好的 page ranking 算法建议,欢迎跟帖。

欢迎大伙多提改进意见(拍砖请绕行),也请帮忙判断一下,这个产品有没有留着的必要,如果没有保留必要,我玩一阵子就准备把网站关了。

谢谢大伙。ps:goobe.cn

14612 次点击
所在节点    分享创造
115 条回复
orangeChu
2019-07-17 22:18:26 +08:00
忘说了我的技术栈是 nodejs,有相关快速检索的方法吗?望不吝赐教,先谢过~
orangeChu
2019-07-17 22:19:26 +08:00
忘说了,我的技术栈是 nodejs,有相关快速检索的方式吗?望不吝赐教,先谢过~
nyfok
2019-07-17 22:26:52 +08:00
@orangeChu 我理解的通讯录数据就是姓名加电话号码,搜索方式就是:电话号码搜索(数字包含关系)、姓名搜索(全拼搜索、汉字或英文字母搜索、拼音首字母搜索)。数据如果只有几千条的话,我觉得不应该慢。
用 lucene 对这个搜索帮助不大,应为姓名和电话号码没有什么好分词的,既然用不到分词,这样 lucene 的搜索效果就体现不出来。当然,你可以使用单字分词,即一个字符作为一个分词,这样也可以,只需要自己按照 lucene 规范写一个分词器即可。
我个人建议,你可以试试看把这些记录全部加载到内存进行检索,速度应该很快,几千条数据应该没问题,这个方案还更简单。如果速度还慢,可以在内存里面写多个 set 集,参照 lucene 的原理。
譬如,张三,张四,张五,张张
=》如下 set 集:
zhang:张三(0),张四(0),张五(0),张张(0|1)
san:张三(1)
si: 张四(1)
wu: 张五(1)
搜索时根据输入首先获得对应的 set 集,对多个 set 集进行交集操作即可获得符合的记录。以上是最简单 demo,具体你可以设计算法,以更加符合自己的需求。
orangeChu
2019-07-17 22:44:01 +08:00
@nyfok 好的,按照楼主提供的思路我再想想,再次感谢楼主写的一大段剖析 :)
nyfok
2019-07-18 00:59:10 +08:00
@orangeChu 不客气啊,祝一次调通
dirkl
2019-07-29 12:17:30 +08:00
最近用了一下,貌似比以前好很多了,楼主升级了?
nyfok
2019-07-30 10:32:50 +08:00
@dirkl 感谢支持!之前因为随着索引结果集越来越大,所以导致查询速度有所变慢,最近优化了一下查询这一块,提高了速度,所以效果更好了。
qdl
2019-08-14 20:03:24 +08:00
@nyfok 想请教楼主你搜索引擎的分页功能是如何实现的,lucene 分页。
nyfok
2019-08-31 09:55:15 +08:00
@qdl lucene 搜索出来是类似于 list 的一个对象,通过页面大小(一个页面多少条记录)和页码,就可以计算出每页的起始和结束文档序号,从 lucene 搜索的 docs 对象里面直接按照序号取就行了。但是为了性能,不能每翻一页就 lucene 查询一下,所以可以在 lucene 上面封装一层 cache 层,每十页一 cache,这样十页内 lucene 其实只查询了一次,速度更快。
lcf8381595
2019-10-08 20:51:59 +08:00
@nyfok 请问楼主怎么联系,能留个邮箱吗?
kzzhr
2019-11-26 22:20:30 +08:00
有办法提交 域名么,有很多大佬的博客再 github.io 上,平时属于孤岛
dylanxult
2020-11-16 11:43:20 +08:00
楼主厉害,想请问下,现在网站还在持续更新么?
nyfok
2021-05-10 10:55:12 +08:00
@dylanxult 暂时没有在更新,看今年下半年能不能抽出时间来专门搞。
Braisdom
2021-07-18 16:04:14 +08:00
@nyfok 兄弟很牛 B,我也在搞一个程序员的搜索引擎,最近要上线了,多多请教了,和您的项目有部分类似,但我侧重点是信息关联和数据分析
bigtang
2023-06-12 10:52:13 +08:00
楼上两位,tanglib.com, 源代码搜索引擎,有机会合起来做吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/574523

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX