我创建了一个sbt项目,学习如何使用弹性搜索与akka。我遇到了alpakka,它提供了这个特性(与elasticsearch连接)。根据文档,要从ES中搜索,我们有以下代码:
val connectionSettings = ElasticsearchConnectionSettings("http://localhost:9200")
val sourceSettings = ElasticsearchSourceSettings(connectionSettings)
val elasticsearchParamsV7 = ElasticsearchParams.V7("index")
val copy = ElasticsearchSource
.typed[User](
elasticsearchParamsV7,
query = """{"match_all": {}}""",
sourceSettings
)
import spray.json.{DefaultJsonProtocol, RootJsonFormat}
case class User(first_name: String, last_name: String, email: String)
object MyJsonProtocol extends DefaultJsonProtocol {
implicit val userFormat: RootJsonFormat[User] = jsonFormat3(User)
}我发现一个与喷雾读取器有关的错误.
No implicits found for parameter sprayJsonReader: JsonReader[User]我不知道我在这里错过了什么。
我已经导入了两个图书馆
"akka-http-spray-json"
"spray-json"在build.sbt文件中
发布于 2021-07-01 13:16:50
您的userFormat不在ElasticsearchSource.typed的范围内,所以请导入它,例如:
import MyJsonProtocol.userFormat
val copy = ElasticsearchSource.typed[User](
elasticsearchParamsV7,
query = """{ "match_all": {} }""",
sourceSettings
)https://stackoverflow.com/questions/68204534
复制相似问题