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 时删除索引并重新创建它们 |
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();
}
}