Elastic4s / PlayFramework - 找不到参数可执行文件的隐式值
Elastic4s / PlayFramework - could not find implicit value for parameter executable
我正在尝试将 ElasticSearch 与 Play 2.3.7 Scala 结合使用。我已经安装了 elastic search,添加了一个索引,并将其设置为 运行(使用 curl 进行了测试)。但是,我正在努力让 elastic4s 在播放控制器中工作。
我使用一个简单的远程工具创建了客户端url
val client = ElasticClient.remote("localhost", 9300)
然后我尝试在客户端执行。
client.execute {
ElasticDsl.index.into("test/test").id(id).fields (
"title" -> title,
"uid" -> uid
)
}
这是在 Action 内部执行的,但出现以下错误。
could not find implicit value for parameter executable: com.sksamuel.elastic4s.Executable[com.sksamuel.elastic4s.IndexDefinition,R,Q]
这似乎是因为我没有按如下方式完全导入 ElasticDsl
import com.sksamuel.elastic4s.ElasticDsl._
而是做
import com.sksamuel.elastic4s.ElasticDsl
导入完整对象时,它清楚地调用了伴随对象,包括所需的隐式。
没有完全导入的原因是,elastic 的 DSL 与 Anorm 的 DSL 冲突,所以通过将 Elastic 代码提取到一个单独的函数,并在函数定义中使用导入,消除了歧义,代码能够编译。
我正在尝试将 ElasticSearch 与 Play 2.3.7 Scala 结合使用。我已经安装了 elastic search,添加了一个索引,并将其设置为 运行(使用 curl 进行了测试)。但是,我正在努力让 elastic4s 在播放控制器中工作。
我使用一个简单的远程工具创建了客户端url
val client = ElasticClient.remote("localhost", 9300)
然后我尝试在客户端执行。
client.execute {
ElasticDsl.index.into("test/test").id(id).fields (
"title" -> title,
"uid" -> uid
)
}
这是在 Action 内部执行的,但出现以下错误。
could not find implicit value for parameter executable: com.sksamuel.elastic4s.Executable[com.sksamuel.elastic4s.IndexDefinition,R,Q]
这似乎是因为我没有按如下方式完全导入 ElasticDsl
import com.sksamuel.elastic4s.ElasticDsl._
而是做
import com.sksamuel.elastic4s.ElasticDsl
导入完整对象时,它清楚地调用了伴随对象,包括所需的隐式。
没有完全导入的原因是,elastic 的 DSL 与 Anorm 的 DSL 冲突,所以通过将 Elastic 代码提取到一个单独的函数,并在函数定义中使用导入,消除了歧义,代码能够编译。