在elastic4s中找不到HttpClient吗?

时间:2019-07-17 14:46:55

标签: scala elasticsearch elastic4s

使用HttpClient时出现错误。您能让我知道如何确切地使用HttpClient吗?我是Elastic4s的新手。  我想将scala与ssl配置的elasticsearch连接起来。我还想知道如何通过链接(例如密钥库路径,信任库路径和用户名,密码)传递SSL详细信息。

scala> import com.sksamuel.elastic4s.http.{HttpClient, HttpResponse}
import com.sksamuel.elastic4s.http.{HttpClient, HttpResponse}

scala> import com.sksamuel.elastic4s.http.ElasticDsl._
import com.sksamuel.elastic4s.http.ElasticDsl._

scala> val client = HttpClient(ElasticsearchClientUri(uri))
<console>:39: error: not found: value HttpClient
       val client = HttpClient(ElasticsearchClientUri(uri))

2 个答案:

答案 0 :(得分:0)

HttpClient似乎是代码库中的一个特征。您似乎将其用作对象。您可以检查实施Here。对于您的用例,我认为更好的方法是使用ElasticClient。代码看起来像这样

import com.sksamuel.elastic4s.http._
import com.sksamuel.elastic4s.{ElasticClient, ElasticDsl, ElasticsearchClientUri}
val client = elastic4s.ElasticClient(ElasticsearchClientUri(uri))

答案 1 :(得分:0)

我遇到了同样的问题,即在尝试使用HttpClientelastic4s-coreelastic4s-http-streamselastic4s-client-esjava 7.3版时,我遇到了错误(未找到)。在scala 2.12.10上为1)。

解决方案:您应该能够找到并使用JavaClient,它是HttpClient的implementation,包装了Elasticsearch Java Rest Client。

here是一个使用JavaClient的示例。

因此,您的代码应如下所示:

import com.sksamuel.elastic4s.http.JavaClient
import com.sksamuel.elastic4s.{ElasticClient, ElasticDsl, ElasticProperties}
...
val client = ElasticClient(JavaClient(ElasticProperties(uri)))