
文档搜索引擎
文章平均质量分 94
文档搜索引擎,从零开始
椰椰椰耶
椰椰椰耶~~~
展开
-
【文档搜索引擎】搜索模块的完整实现
实现了Searcher类里面的search方法分词触发排序包装结果这里面的很多脏活累活都交给了第三方库和前面模块已经封装好的方法,这里仅仅只是将之前准备好的工作给串起来这里的搜索模块实现比较简单,主要还是因为当前没有什么“业务逻辑有的搜索结果要展示不同的搜索样式(图片、子版块、视频…)有的搜索结果会受到地域和时间的影响在实际开发中,技术都是为了业务服务的在公司中除了学习技术之外,也要学习产品的业务。原创 2024-12-24 21:38:34 · 2748 阅读 · 52 评论 -
【文档搜索引擎】缓冲区优化和索引模块小结
开机之后,首次制作索引会非常慢,但后面就会快了重启机器,第一次制作又会非常慢这是为什么呢?在 parserContent 里面,我们进行了一个读文件的操作的核心操作,就是读取文件,从磁盘进行访问,操作系统就会对“经常读取的文件”进行缓存首次运行的时候,当前的这些 Java 文档,都没有在内存中缓存,因此读取的时候只能直接从硬盘上读取(相对耗时)原创 2024-12-23 19:25:33 · 1760 阅读 · 23 评论 -
【文档搜索引擎】使用多线程优化流程
通过测试,我们可以发现程序执行过程中主要耗时的就是“索引的制作”,因为索引是一个一个,单线程制作的,就很耗时。- 我们可以尝试使用多线程,将这个步骤优化一下,提高一下性能原创 2024-12-18 16:45:30 · 1627 阅读 · 20 评论 -
【文档搜索引擎】在内存中构造出索引结构(下)
索引本来是存储在内存中的,为什么要将其保存在硬盘中?因此我们不应该在服务器启动的时候,才构建索引(启动服务器就可能会拖慢很多很多)原创 2024-12-16 20:30:01 · 1277 阅读 · 2 评论 -
【文档搜索引擎】在内存中构造出索引结构(上)
但是文档和搜索词之间的关联性是有区别的,是有权重区分的。所以我们要另建一个类,来对文档 id 和词之间的“相关性”进行判断。在真实的搜索引擎中,相关性往往是一个专门的算法团队来进行负责。根据文档中提取的特征,训练模型,最终借助机器学习的方法来衡量相关性。因此就可以先针对当前文档进行分词,然后根据每个分词结果,去倒排索引中去找到对应的。我们为了方便,就把标题的次数和正文的次数装到一个类里面了,而不是弄两个。我们只需要结合前面说到的分词操作,对这里的标题进行分词即可。,后面遍历的时候就很麻烦,就得查两次。原创 2024-12-16 20:27:58 · 1004 阅读 · 1 评论 -
【文档搜索引擎】实现索引构建——解析标题、解析URL、解析正文
实际上当前获取到这个正文,目的是为了后面能够生成描述信息(一段话,肯定不能有空行)在真实的搜索引擎中,展示 URL 和跳转 URL 是不同的 URL。标签这个环节中,虽然正则表达式可以解决问题,但是用起来很麻烦,因此我们可以使用更简单粗暴的方式来实现这里的逻辑。我们所期望的结果就是:用户点击搜索结果的时候,就能够跳转到对应的线上文档的页面。所以我们就需要把当前得到的字符串进行截取,去掉后面的。我们在读文件的时候,有的时候是按照“),也提供了能按照字符来读取的类(“来读取,有的时候是按照“原创 2024-11-27 09:31:26 · 1671 阅读 · 13 评论 -
【文档搜索引擎】项目核心思路,模块划分和分词的概念
项目目标:实现一个针对 Java 文档的搜索引擎。原创 2024-11-26 17:38:12 · 1182 阅读 · 1 评论