在 Windows 上安装 Elasticsearch 作为服务

Elasticsearch 可以作为服务安装在后台运行,或者在启动时自动启动,无需任何用户交互。elasticsearch-service.bat这可以通过文件夹中的脚本实现,bin\该脚本允许从命令行安装、删除、管理或配置服务并可能启动和停止服务。

      D:\elasticsearch-7.17.9\bin>elasticsearch-service.bat

Usage: elasticsearch-service.bat install|remove|start|stop|manager [SERVICE_ID]
    

该脚本需要一个参数(要执行的命令),后跟一个指示服务 ID 的可选参数(在安装多个 Elasticsearch 服务时很有用)。

可用的命令是:

install 将 Elasticsearch 安装为服务
remove 删除已安装的 Elasticsearch 服务(如果启动则停止该服务)
start 启动 Elasticsearch 服务(如果已安装)
stop 停止 Elasticsearch 服务(如果已启动)
manager 启动用于管理已安装服务的 GUI

添加依赖

要使用 Elasticsearch,需要添加 Elasticsearch 的 Java 客户端依赖。可以在项目的 pom.xml 文件中添加以下依赖

      <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
    

配置连接信息

      spring:
  elasticsearch:
    uris: http://localhost:9200
    socket-timeout: "10s"
    username: "user"
    password: "secret"
    

创建实体类

创建一个Java类来表示您要存储在Elasticsearch中的数据。此类应该使用@Document注解进行注释,并且每个字段都应该使用相应的注解进行注释,以指定字段名称、数据类型和Elasticsearch中的数据类型。

      @Document(indexName = "post")
@Data
public class PostEsDTO implements Serializable {

    private static final String DATE_TIME_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";

    /**
     * id
     */
    @Id
    private Long id;

    /**
     * 标题
     */
    private String title;

    /**
     * 内容
     */
    private String content;

    /**
     * 创建时间
     */
    @Field(index = false, store = true, type = FieldType.Date, format = {}, pattern = DATE_TIME_PATTERN)
    private Date createTime;

    private static final long serialVersionUID = 1L;
}
    

创建Repository接口

创建一个Repository接口,继承自ElasticsearchRepository,用于在Elasticsearch中存储和检索数据。Spring Data Elasticsearch会自动根据方法名称生成查询,您也可以使用@Query注解来指定自定义查询。

      public interface PostEsDao extends ElasticsearchRepository<PostEsDTO, String> {
    List<PostEsDTO> findByUserId(Long userId);
}
    

使用Repository

在您的代码中,可以通过注入MyEntityRepository来使用它,并使用它的方法来存储和检索数据

      @RestController
public class MyController {

    @Resource
    private PostEsDao postEsDao;

    @PostMapping("/entities")
    public MyEntity create(@RequestBody PostEsDTO postEsDTO) {
        return postEsDao.save(entity);
    }

    @GetMapping("/entities/{id}")
    public MyEntity findById(@PathVariable String id) {
        return postEsDao.findById(id).orElse(null);
    }

    @GetMapping("/entities")
    public List<MyEntity> findByName(@RequestParam String name) {
        return postEsDao.findByName(name);
    }
}
    

以上就是使用spring-boot-starter-data-elasticsearch库在Spring Boot应用程序中与Elasticsearch进行交互的基本步骤。通过这种方式,您可以轻松地将Elasticsearch集成到您的应用程序中,并使用Spring Data的强大功能进行查询和操作。

分页

      @PostMapping("/list")
    public Result<Page<PostEsDTO>> findAll(@RequestBody PostEsDTO postEsDTO) {
        int current = postEsDTO.getCurrent();
        int size = postEsDTO.getSize();
        return Result.success(postEsDao.findAll(PageRequest.of(current,size))); 
    }
    // findAll(PageRequest.of(current,size))为ElasticsearchRepositorynei'zhi
    

高亮及搜索建议

DSL转springboot代码

声明

作者: liyao

版权:本博客所有文章除特别声明外,均采用CCBY-NC-SA4.O许可协议。转载请注明!

最后更新于 2026-02-17 19:53 history