Ниже приведен сценарий, который я использую для доступа к данным индекса из elasticsearch
в коде Spark Scala. Он работает отлично.
import com.sksamuel.elastic4s.http.{ElasticClient, ElasticProperties}
import com.sksamuel.elastic4s.http.ElasticDsl._
val esUrl = "http://" + <ip> + ":" + <port>
val client = ElasticClient(ElasticProperties(esUrl))
val response = client.execute(
deleteIn(Index/Type).by(matchQuery(indexField, values))
)
Теперь я настроил ES как SSL и пытаюсь получить доступ к тем же данным, но это не работает, так как мне нужно передать здесь данные SSL. Итак, я прошел ниже URL-адреса, но он дает неверную ошибку URL-адреса.
https://user:pass@<ip>:<port>?ssl=true"
or
https://user:pass@<ip>:<port>"
Не могли бы вы помочь мне изменить этот сценарий, чтобы он также мог работать с настроенным SSL ES?
Я также пытался использовать HttpClient
вместо ElasticClient
, но он не работает и выдает странную ошибку, как показано ниже:
scala> import com.sksamuel.elastic4s.http.HttpClient
import com.sksamuel.elastic4s.http.HttpClient
scala> val esUrl = "elasticsearch://user:pass@<ip>:<port>?ssl=true"
esUrl: String = elasticsearch://user:pass@<ip>:<port>?ssl=true
scala> val client = HttpClient(ElasticsearchClientUri(esUrl))
<console>:43: error: not found: value HttpClient
Я хочу использовать для него тот же ElasticClient
. Пожалуйста, дайте мне знать, если я что-то пропустил.
Обратите внимание: я использую следующую версию:
Искра – 2.4.3
ElasticSearch — 6.2.4
elastic4s — 6.3.3
скала – 2.11