没有找到参数 sprayJsonReader 的隐式:JsonReader[T]
No implicits found for parameter sprayJsonReader: JsonReader[T]
我创建了一个 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)
}
我发现与喷雾相关的错误显示 json reader 说...
No implicits found for parameter sprayJsonReader: JsonReader[User]
我不知道我在这里错过了什么。
我已经导入了两个库
"akka-http-spray-json"
"spray-json"
在 build.sbt 文件中
您的 userFormat
不在 ElasticsearchSource.typed
的范围内,因此请导入它,例如:
import MyJsonProtocol.userFormat
val copy = ElasticsearchSource.typed[User](
elasticsearchParamsV7,
query = """{ "match_all": {} }""",
sourceSettings
)
我创建了一个 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)
}
我发现与喷雾相关的错误显示 json reader 说...
No implicits found for parameter sprayJsonReader: JsonReader[User]
我不知道我在这里错过了什么。
我已经导入了两个库
"akka-http-spray-json"
"spray-json"
在 build.sbt 文件中
您的 userFormat
不在 ElasticsearchSource.typed
的范围内,因此请导入它,例如:
import MyJsonProtocol.userFormat
val copy = ElasticsearchSource.typed[User](
elasticsearchParamsV7,
query = """{ "match_all": {} }""",
sourceSettings
)