这是一个使用 Spring Boot 和 PostgreSQL 实现的中文全文搜索示例项目。本项目结合了 Jieba 中文分词和 PostgreSQL 的全文搜索功能,实现了对中文文章的高效搜索。
- Spring Boot 3.4.2
- PostgreSQL (全文搜索)
- JPA/Hibernate
- Jieba 分词器
- Java 21
- 支持中文分词
- 文章标题和内容的全文搜索
- 搜索结果权重排序(标题权重高于内容)
- RESTful API 接口
- JDK 21
- PostgreSQL 数据库
- Maven
- 创建 PostgreSQL 数据库:
CREATE DATABASE medusa;- 创建文章表:
CREATE TABLE articles (
id BIGSERIAL PRIMARY KEY,
title VARCHAR(255),
content TEXT,
tokens TSVECTOR
);
CREATE EXTENSION pg_trgm;
CREATE INDEX articles_tokens_idx ON articles USING GIN (tokens);配置文件位于 src/main/resources/application.yaml,根据你的环境修改数据库连接信息:
spring:
datasource:
url: jdbc:postgresql://localhost:5432/medusa
username: your_username
password: your_passwordGET /articles?title={title}&content={content}
GET /articles/{id}
GET /articles/search?query={searchText}
- 使用 Jieba 分词器对中文文本进行分词
- 将分词结果存储为 PostgreSQL 的 tsvector 类型
- 使用 PostgreSQL 的全文搜索功能进行查询
- 通过权重设置(setweight)使标题搜索结果具有更高优先级
- IDE: IntelliJ IDEA (推荐)
- 构建工具: Maven
- 版本控制: Git