这是源码,大家可以下载下来作为参考,一起食用效果更佳:SearchEngine · 王宇璇/submit - 码云 - 开源中国 (gitee.com)https://gitee.com/yxuan-wang/submit/tree/master/SearchEngine搜索引擎项目总体来看内容比较简单,代码量也比较少,是一个易上手的项目。
建立这个项目的初衷就是个人认为搜索引擎在生活中比较实用的一个项目,可以依据这个简单的项目了解搜索引擎的大致工作原理,为以后处理学习或者工作中的项目提供一个最基本的流程模板做参考。
因为我们只是简单的建立一个小的项目来了解流程(像大型搜索应用实现起来还是很困难)建立的搜索引擎项目就是相当于一个站内搜索,比如说购物应用中搜索商品等。我们针对的搜索内容就是java文档。
我们首先需要准备好java文档
Java 下载 |神谕 (oracle.com)https://www.oracle.com/java/technologies/downloads/
下载这个压缩包进行解压得到jdk 针对api文件夹中所有的html的文档构建搜索引擎,通过关键字搜索文档中的内容。
新建项目:
构建系统选择Maven,选好jdk版本。创建项目。
对于一个简单的浏览器,最重要的就是实现索引功能。从其功能考虑我们的项目如何创建:
用户输入一个词语或者一个句子,我们就要把和这个词语有关的所有文档全部展现出来。
分词
首先就是进行分词,我们搜索针对的是每一个词语,对于中文的分词比较困难,需要根据大数据来调查用语习惯,比如“但但丁丁真真是三个人,但但丁丁真真是两个人”诸如此类分词就很难搞,而英文就简单的多,“how are you?”我们只需要在空格处进行分词即可。此处我们使用ansj提供的ToAnalysis.parse方法进行分词。不要忘记引入依赖,刷新!!!
<!-- https://mvnrepository.com/artifact/org.ansj/ansj_seg -->
<dependency>
<groupId>org.ansj</groupId>
<artifactId>ansj_seg</artifactId>
<version>5.1.6</version>
</dependency>