使用springboot+Elasticsearch搭建本地化知识库搜索

安装

安装 Elasticsearch 可以通过多种方式进行,下面我将详细介绍在本地环境中安装和运行 Elasticsearch 的步骤。我们将使用官方提供的二进制包进行安装。

安装前的准备

在开始之前,请确保你的系统满足以下要求:

  • Java 8 或更高版本:Elasticsearch 是基于 Java 开发的,因此需要先安装 JDK。
  • 足够的内存:建议至少有 2GB 的可用内存。

步骤一:下载 Elasticsearch

  1. 访问 Elasticsearch 官方下载页面
  2. 根据你的操作系统选择合适的版本进行下载。对于大多数用户来说,选择最新稳定版是一个不错的选择。

示例(Linux/macOS)

你可以使用 wgetcurl 命令直接从命令行下载:

bash 复制代码
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz

或者使用 curl

bash 复制代码
curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.2-linux-x86_64.tar.gz

步骤二:解压文件

下载完成后,你需要解压下载的文件:

bash 复制代码
tar -xzf elasticsearch-7.10.2-linux-x86_64.tar.gz

这将在当前目录下创建一个名为 elasticsearch-7.10.2 的文件夹。

步骤三:启动 Elasticsearch

进入解压后的目录,并启动 Elasticsearch:

bash 复制代码
cd elasticsearch-7.10.2
./bin/elasticsearch

默认情况下,Elasticsearch 将在前台运行并监听 localhost 上的端口 9200

步骤四:验证安装

打开浏览器或使用 curl 命令来访问 Elasticsearch 的 REST API,确认它是否正确运行:

bash 复制代码
curl -X GET "localhost:9200"

如果一切正常,你应该会看到类似以下的 JSON 输出:

json 复制代码
{
  "name" : "your-hostname",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "xxxxxxxxxx",
  "version" : {
    "number" : "7.10.2",
    "build_flavor" : "default",
    ...
  },
  "tagline" : "You Know, for Search"
}

配置选项(可选)

为了更好地适应生产环境的需求,你可能需要调整一些配置项。主要的配置文件位于 config/elasticsearch.yml 中。例如,你可以修改集群名称、节点名称等。

使用 Docker 安装(推荐方法)

如果你更倾向于使用 Docker,也可以通过 Docker 快速部署 Elasticsearch:

  1. 确保已经安装 Docker。
  2. 运行以下命令启动 Elasticsearch:
bash 复制代码
docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.2

这样就可以快速地在一个 Docker 容器中运行 Elasticsearch 实例了。

对接 springboot

Spring Boot 对接 Elasticsearch:从入门到实践

引言

随着数据量的不断增长,如何高效地存储、检索和分析海量数据成为了一个关键问题。Elasticsearch 作为一个分布式的搜索和分析引擎,以其强大的全文搜索功能和高扩展性得到了广泛的应用。Spring Boot 作为 Java 开发中的一种快速开发框架,能够极大地简化开发过程。本文将详细介绍如何使用 Spring Boot 对接 Elasticsearch,包括环境搭建、项目配置及实际应用案例。

环境准备

在开始之前,我们需要准备好以下环境:

  • JDK 1.8+
  • Maven 3.x+
  • Spring Boot 2.x
  • Elasticsearch 7.x

确保你的机器上已经安装并配置好上述软件。如果还没有安装,可以访问官方网站下载并按照指南进行安装。

创建 Spring Boot 项目

首先,我们可以通过 Spring Initializr 快速创建一个新的 Spring Boot 项目。选择合适的依赖项,如 Spring WebSpring Data Elasticsearch

步骤一:添加依赖

pom.xml 文件中添加以下依赖:

xml 复制代码
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
    </dependency>
    <!-- 其他依赖 -->
</dependencies>
步骤二:配置 Elasticsearch 连接信息

application.propertiesapplication.yml 文件中配置 Elasticsearch 的连接信息:

yaml 复制代码
spring:
  elasticsearch:
    rest:
      uris: http://localhost:9200

请根据自己的 Elasticsearch 实例地址调整配置。

搭建过程

接下来,我们将详细介绍如何在 Spring Boot 中对接 Elasticsearch。

数据模型设计

定义一个简单的文档类,用于表示要存储的数据。例如,我们可以创建一个名为 Article 的实体类来表示文章信息:

java 复制代码
@Document(indexName = "articles")
public class Article {
    @Id
    private String id;
    private String title;
    private String content;
    // Getters and Setters...
}
Repository 层实现

为了方便操作 Elasticsearch,我们可以创建一个继承自 ElasticsearchRepository 的接口:

java 复制代码
public interface ArticleRepository extends ElasticsearchRepository<Article, String> {
}

通过这个接口,我们就可以使用一些基本的 CRUD 操作了。

Service 层逻辑

在 Service 层中,我们可以编写具体的业务逻辑,比如保存文章、查询文章等:

java 复制代码
@Service
public class ArticleService {
    @Autowired
    private ArticleRepository articleRepository;

    public void saveArticle(Article article) {
        articleRepository.save(article);
    }

    public Iterable<Article> findAllArticles() {
        return articleRepository.findAll();
    }
}

应用实例

最后,我们可以通过一个简单的控制器来测试我们的应用是否正常工作:

java 复制代码
@RestController
@RequestMapping("/api/articles")
public class ArticleController {

    @Autowired
    private ArticleService articleService;

    @PostMapping
    public ResponseEntity<Article> createArticle(@RequestBody Article article) {
        articleService.saveArticle(article);
        return ResponseEntity.ok(article);
    }

    @GetMapping
    public ResponseEntity<Iterable<Article>> getAllArticles() {
        return ResponseEntity.ok(articleService.findAllArticles());
    }
}

总结

通过本文,我们学习了如何使用 Spring Boot 对接 Elasticsearch,并完成了一个简单的应用示例。虽然这里只展示了基本的操作,但在实际项目中,你还可以利用 Elasticsearch 提供的强大功能,如全文搜索、聚合分析等,来满足更复杂的需求。希望这篇文章能为你提供有价值的参考,并帮助你在项目中成功集成 Elasticsearch。

相关推荐
shengjk16 分钟前
只会写代码的程序员,注定没有出路!
人工智能·后端
shengjk115 分钟前
Flink 中RocksDB 为什么将每个键和值的限制为 2^31 字节
人工智能·后端
neo_Ggx231 小时前
Spring上下文工具类
java·后端·spring
西岭千秋雪_1 小时前
Spring MVC源码分析の请求处理流程
java·后端·spring·mvc·springboot
web147862107231 小时前
Spring Framework 中文官方文档
java·后端·spring
Pitayafruit2 小时前
【📕分布式锁通关指南 07】源码剖析redisson利用看门狗机制异步维持客户端锁
redis·分布式·后端
小菜不菜_xc2 小时前
Spring Boot + MyBatis-Plus 最全配置指南,让你的项目更高效!
java·后端·spring
uhakadotcom2 小时前
阿里云PAI:一站式机器学习平台
后端·面试·github
Matrix702 小时前
Scala编程_数组、列表、元组、集合与映射
开发语言·后端·scala
uhakadotcom2 小时前
阿里云可观测监控Prometheus版:简化监控,提升效率
后端·面试·github