Java8 API 文档搜索引擎_1. 项目简介与模块划分

目录

[1. 项目实现背景](#1. 项目实现背景)

[2. 项目目标与实现方法](#2. 项目目标与实现方法)

[2.1 项目目标](#2.1 项目目标)

[2.2 总体功能](#2.2 总体功能)

[3. 基本工具](#3. 基本工具)

[3.1 Java8 API离线文档](#3.1 Java8 API离线文档)

[3.2 Ansj分词库](#3.2 Ansj分词库)

[4. 模块划分](#4. 模块划分)

[4.1 索引模块](#4.1 索引模块)

[4.2 搜索模块](#4.2 搜索模块)

[4.3 web模块](#4.3 web模块)


1. 项目实现背景

Oracle提供了Java多个版本的API 在线文档,以Java8为例,地址如下:

https://docs.oracle.com/javase/8/docs/api/index.html

在线文档页面布局如下:

Oracle官方的API文档却未提供搜索功能,这给查询接口及类的相关成员属性或方法造成了一定困难,只能根据左侧导航栏逐包逐类或接口地查找。

故现实现Java8 API 搜索引擎,以方便查找与使用。

2. 项目目标与实现方法

2.1 项目目标

实现java8 API文档的栈内搜索引擎。

2.2 总体功能

使用oracle官网提供的Java8的API压缩包,在本地基于离线文档制作索引实现搜索。当用户在搜索结果页点击具体的搜索结果时,就自动跳转到在线文档的页面。即本地搜索+在线查看。

本地搜索实现读取本地文档并建立索引,保证快速检索;在线查看则保证查找结果与官方网站的实时一致与美观展示。

3. 基本工具

3.1 Java8 API离线文档

java 8文档压缩包下载地址:Java Downloads | Oracle

点击Documentation Download进行压缩包的下载:

3.2 Ansj分词库

Ansj是一个开源的分词库,官网相关介绍见地址:

https://github.com/NLPchina/ansj_seg

Ansj的maven依赖见maven仓库地址:

https://mvnrepository.com/artifact/org.ansj/ansj_seg

或直接将以下dependency导入pom.xml文件:

XML 复制代码
<!-- Source: https://mvnrepository.com/artifact/org.ansj/ansj_seg -->
<dependency>
    <groupId>org.ansj</groupId>
    <artifactId>ansj_seg</artifactId>
    <version>5.1.6</version>
    <scope>compile</scope>
</dependency>

4. 模块划分

4.1 索引模块

  1. 扫描下载到的文档,分析文档内容,构建正排索引与倒排索引,并将索引内容保存在文件中;

  2. 加载制作好的索引,并提供一些API实现查正排与查倒排的功能;

4.2 搜索模块

调用索引模块,实现一个搜索的完整过程;

输入为用户查询词,输出为多条记录(标题、描述、URL)并且点击能够跳转;

4.3 web模块

实现一个web程序,能够通过网页形式与用户进行交互;


后续各模块具体实现见本专栏后文。

相关推荐
江南十四行17 小时前
并发编程(二)
java·开发语言
qingfeng1541517 小时前
企业微信 API 自动化开发指南:从消息回调到智能运营实战
java·开发语言·python·自动化·企业微信
jonyleek17 小时前
性能就是生命线?规则引擎如何支撑实时决策
java·开发语言·数据库
ZFSS17 小时前
Midjourney Shorten API 的集成与使用
java·前端·数据库·人工智能·ai·midjourney·ai编程
前端若水18 小时前
【无标题】
java·人工智能·python·机器学习
tongluowan00718 小时前
@Autowired 和 @Resource 有什么区别?
java·spring·bean
Maiko Star18 小时前
* SpringBoot整合LangChain4j
java·spring boot·后端·langchain4j
MandalaO_O18 小时前
MyBatis:核心概念 + 环境搭建 + CRUD
java·tomcat·mybatis
DN金猿18 小时前
spring.cloud.nacos.discovery.server-addr和spring.cloud.nacos.server-addr区别
java·开发语言·nacos·springcloud·sca