做了一个代码搜索引擎: dig.codes

讨论 未结 33 47
techv
techv 会员 2022年4月24日 00:45 发表
<p>作为一个全栈开发者,经常要在多种语言之间挑战,然而最熟悉的只有一种,其它的往往是随用随学,对搜索引擎的依赖很大,而搜索引擎的结果需要再点进去查找,比较繁琐了那么一点点。</p> <p>dig.codes 希望减少那一点点繁琐,在结果页主要显示代码,通过看这一页的结果快速解决编程中的问题,比如“js 数组 方法”。如果需要深入了解这个问题,再点击原始链接查看详情。</p> <p>实际上,“减少那一点点繁琐”的愿望并不好实现。dig.codes 的数据源是在线教程、文档、博客,挖掘其中的代码匹配用户查询并把最符合的代码呈现给用户,这个匹配过程其实相当难。用户输入是带有语义的自然语言,目前搜索引擎的算法主要是字符串匹配,这中间有个巨大的鸿沟——语义。这就导致你很容易发现 bad case ,当然也有很多 good case 。也尝试了语义搜索的方法,但是效果比字符串匹配差很多。这个愿望的圆满还任重道远。</p> <p>下一步,搜索算法,减少答非所问的情况。同时也在考虑是否要实现 github 代码搜索。目前的搜索,主要是搜索文档中的代码,要搜索 GitHub 的话就是从工程代码中搜,即纯代码搜索。由于 GitHub 已经提供的代码搜索,dig.codes 再提供类似的功能意义何在?近期一直在考虑这个问题。如果您有什么建议,欢迎回复提出,十分感谢。</p> <p>请大家试用 <a href="https://dig.codes/" rel="nofollow">https://dig.codes/</a> , 提出您的宝贵意见和建议,以及各种讨论,谢谢,谢谢。</p>
收藏(0)  分享
相关标签: 灌水交流
注意:本文归作者所有,未经作者允许,不得转载
33个回复
  • sciel
    2022年4月24日 01:15
    不错呀,虽然搜索 文字转语音 没有找到想要的结果 不过还是收藏,下次遇到问题时试试哈 另外 移动端下输入框可以加长一点( ´▽`)
    0 0
  • gogogo1203
    2022年4月24日 01:15
    1. dark mode 可以做一个. 大家用的频率应该很高, 我用自动 dark mode 的插件,页面看得有点怪。 2. 搜索的结果还是有点差强人意, 尤其是竞品越来越强,copilot 是一种没有办法逾越的大山。我也是全栈,golang- js-css-docker-sql 跳来跳去的,原来仰赖 Notion 自己做知识库. 现在 copilot 在我还没有想好下一步写啥,它就能给出答案。 3. 我觉得可以缩小范围,最初只做一个语言或者一个框架的知识库。这样好完善内容建设,也好吸引用户。我觉得你把一个 react 各种 hooks 做好,就会有不少人用了 4. 加入更多的用户自己打标签? ucg ?
    0 0
  • techv
    2022年4月24日 01:45
    哇喔,太详细的回复! 1. dark mode 确实是用的很多, 有空试试。 2. 跟 copilot 还是无法攀比的,这个工具最初是向快速查询基础用法,比如“js 遍历数组”对于偶尔用 js 的人来说,需要看一个 code 例子就可以马上学会,当然搜索结果有待大大提高。 3. 这是个很好的建议,如果设计好一种知识库插件机制,每个语言是一个知识库。知识库:1. 有特定的数据结构; 2. 可以从文档自动生成该结构知识库; 3. 众包知识库。 4. ucg 是个好方向。用户打标签外,还可以用户写代码;有人出题,有人做题。如何激励用户产生内容需要好好想想。
    0 0
  • techv
    2022年4月24日 01:45
    你的这个问题比较高级了些,它目前的智力比较适合语言基础之类的问题。 确实忽略了移动端的输入框,需要优化。
    0 0
  • njutree
    2022年4月24日 01:45
    感觉结果需要优化, 现在的结果感觉还不如 google
    0 0
  • gogogo1203
    2022年4月24日 01:45
    我建议还是要把定位做清晰一点,把 target customer 再做小一点,大而全的结果是推广难,内容乱。 你看你是要定位成“完全没有用过 arr.map 的”用户, 还是“知道 arr.map, 但是一段时间不用,忘记了”的用户。 可能 arr.map 不是一个很好的例子,arr.reduce 估计很多人都用过, 但是一段时间不用就忘了。 我个人建议前期做透做精一个点. 或者做成个人知识库的管理, 也可以共享知识库. 大家都是全栈, 什么都懂点,什么都不精.如果一个产品也跟我一样,那可不太行.
    0 0
  • LeeReamond
    2022年4月24日 02:16
    支持 lz 探索的精神,但是我试着上去搜了几个关键字得到的结果都不是很好。。
    0 0
  • mahone3297
    2022年4月24日 02:16
    感觉要被 copilot 打败。使用起来 copilot 效率会更高
    0 0
  • fgd
    2022年4月24日 02:47
    不错,感觉我能用到。
    0 0
  • fengyiqicoder
    2022年4月24日 02:47
    想法很不错哎,但是我随便试了一下比如 swift import musickit 出来的都是 JS 的结果。 在实现上加一些规则是否可以让结果更精准命中一些?比如 github 的 language:这种功能呢?
    0 0
  • huntagain2008
    2022年4月24日 05:18
    牛逼,开始我以为是 searchcode 一样的光搜代码片段的东西。结果搜到了我想知道的用法,各种教学。比如 ``` shell awk 'max<$5 || NR==1{ max=$5; data=$2 } END{ print data }' ``` 我是小白,用 awk 查找某一列的最大值,这一段我就搞不清楚 NR==1 是干嘛的,结果用 awk ' max < || NR == 1 用你的搜索引擎一搜就搜到了。有点像别人现场教学的感觉。
    0 0
  • techv
    2022年4月24日 05:46
    做精与做全并不矛盾,做精可能需要更多的人力投入,现在正在探索如何用机器做知识的抽取,这个做好了可以解决很多问题,可以从一点出发做精做透,探索知识抽取的路径。
    0 0
  • techv
    2022年4月24日 05:46
    现在还不能跟 Google 比,它的收录面很广
    0 0
  • gogogo1203
    2022年4月24日 05:46
    我觉得中文和英文同时做自然语言得学习实在太难了。还是取舍和定位吧。
    0 0
  • techv
    2022年4月24日 05:46
    @ @ 这 3 个是纯粹的代码片段搜索,也就是我提到的下一步可能要做的。现在的 dig.codes 跟他们不同,可以理解为类似搜索引擎的图片搜索,输入一段文字描述得到一段段代码。
    0 0
  • techv
    2022年4月24日 05:46
    与 copilot 还是不一样,它是帮助你补充代码,digcodes 是帮你补充代码知识。 初试 copilot 确实被它惊艳到了,我自定义的数据结构它都能“理解”而补充了正确的代码,几次之后就相信了它,然而它对复杂的数据结构有时候不准确,导致 debug 好久才发现是它代码的问题。
    0 0
  • techv
    2022年4月24日 05:46
    language: 过滤在计划中,应该能提高准确率,多谢。
    0 0
  • techv
    2022年4月24日 06:16
    谢谢鼓励,它在不断进化,请多多使用,希望它有一天能成为你的助手。
    0 0
  • techv
    2022年4月24日 06:16
    恭喜您,发现了它的真正目的,希望这个特点成为它的价值。
    0 0
  • techv
    2022年4月24日 06:16
    谢谢,希望能帮到您。
    0 0
  • techv
    2022年4月24日 06:16
    确实很难,我再好好考虑考虑取舍和定位的问题,谢谢您的建议。
    0 0
  • zagfai
    2022年4月24日 06:16
    "python redis asyncio" 没有得到想要答案
    0 0
  • Echoldman
    2022年4月24日 07:17
    用了一下,感觉很有意思,一定程度上能给到我想要的东西。 好奇的问下,这是你的个人在做的项目吗?
    0 0
  • haobogu
    2022年4月24日 10:17
    如果是 Java 的话,可以试一下 IDEA 的插件 Alibaba Clouding Coding Assistant ,里面也有类似的代码搜索功能
    0 0
  • techv
    2022年4月24日 10:17
    现在有了。知识库还需继续扩充。
    0 0
  • techv
    2022年4月24日 10:17
    如有想要的功能尽管提出来哦。是的,个人项目。
    0 0
  • techv
    2022年4月24日 10:17
    好的,去学习一下
    0 0
  • LemonK
    2022年4月24日 11:47
    优秀,关注了。曾经设想过类似的 UGC+知识图谱,OP 用搜索+机器抽取效果也很不错。 我个人还是赞同#2 先按语言一个个做精的想法,如果某个语言结果不全或者质量不高,对这个语言的用户来说就是基本不可用,留着也意义不大。
    0 0