我一直在使用 elastic4s 进行数据检索,并开始研究测试我当前的代码。我正在尝试创建一个本地客户端,然后我可以使用它(并传递给我的参与者),这对于测试来说比在构建服务器上部署弹性集群并保持它更易于管理。
下面是我到目前为止一直在尝试的代码。这应该启动一个简单的实例,创建一个索引,将视频添加到“视频”索引中,然后检索它。
val essettings = ImmutableSettings
.settingsBuilder().put("cluster.name", conf.getString("elasticsearch.cluster-name")).build()
ElasticsearchConnection.setInstance(ElasticClient.local(essettings))
val client = ElasticsearchConnection.getInstance()
client.execute( create index "videos" mappings(
"video" as (
"artist" typed StringType,
"title" typed StringType
)
)
)
client.execute(
bulk(
index into "videos" id 1 fields ("title" -> "Worth It", "artist" -> "Fifth Harmony")
)
).await
val resp = client.execute(
search in "videos" types "video" limit 1 query bool {
must (
matchQuery("artist", "Fifth Harmony")
)
}
).await
但是它没有像我期望的那样工作。它在没有中断任何行的情况下运行,但在resp
. 我对外部 ES 集群使用相同类型的查询,所以我认为我的设置方式有问题。