ElasticSearch

要将 ElasticSearch 用作 Ebean 的文档存储,我们需要添加对 ebean.docstore 属性的配置,如下例所示

要使用 ElasticSearch docker 容器进行测试,我们设置 ebean.docstore.elastic.version 属性,如下例所示。然后,ebean-test 将确保 ElasticSearch 以 docker 容器的形式运行。

ebean:
  test:
    platform: h2
    ddlMode: dropCreate # none | dropCreate | migrations | create
    dbName: myapp

  docstore:
    url: http://127.0.0.1:9201
    active: true
    generateMapping: true
    dropCreate: true

    elastic: # For testing using docker container
      version: 5.6.0
      port: 9201

在日志记录方面,我们可以看到

21:57:06.587 INFO  io.ebean.docker.commands.Commands - Start container ut_elastic with port:9201

当仅使用 ElasticSearch 而不用于其他数据库时,省略 ebean.test.platform 部分,如下所示

ebean:
  docstore:
    url: http://127.0.0.1:9201
    active: true
    generateMapping: true
    dropCreate: true

    elastic:
      version: 5.6.0
      port: 9201

ebean-elastic 依赖项

添加 ebean-elastic 作为依赖项。

<dependency>
  <groupId>io.ebean</groupId>
  <artifactId>ebean-elastic</artifactId>
  <version>13.0.0</version>
</dependency>

配置属性

属性 描述
ebean.docstore.active 设置为 true 以启用 docstore 使用
ebean.docstore.url ElasticSearch 预计使用的 URL
ebean.docstore.generateMapping 为 true 时生成索引映射
ebean.docstore.dropCreate 为 true 时删除索引并重新创建它们

有关 ElasticSearch 的更多详细信息

Docker 容器

我们可以以编程方式启动 ElasticContainer 的 docker 容器版本。

下面使用 ebean-test-docker 依赖项,该依赖项已包含在 ebean-test 中。如果我们没有对 ebean-test 的依赖项,则添加 io.ebean:ebean-test-docker:5.0 作为依赖项。

package main;

import io.ebean.docker.commands.ElasticContainer;

public class Main {

  public static void main(String[] args) {

    ElasticContainer container = ElasticContainer.newBuilder("5.6.0")
      .build();

      container.start();
  }
}