我尝试使用elastic4s API
将某些数据编入索引进行弹性搜索但我得到编译错误not found: value index
这是代码,稍后我会将js对象字段映射到弹性搜索字段, 但是现在我只想索引一个测试用例
import com.sksamuel.elastic4s._
def indexComment(commentList: List[JsObject]) {
val client = ElasticClient.local
for (comment <- commentList) {
val id = comment.\("id").as[String]
client.execute {
index into "posts/test" id id.toString() fields (
"name" -> "London",
"country" -> "United Kingdom",
"continent" -> "Europe",
"status" -> "Awesome")
}
}
}
}
这是SBT文件
libraryDependencies ++= Seq(
jdbc,
anorm,
cache,
"org.webjars" %% "webjars-play" % "2.2.1",
"org.webjars" % "bootstrap" % "3.1.0",
"org.webjars" % "jquery" % "2.1.0-1",
"com.sksamuel.elastic4s" %% "elastic4s" % "1.0.0.0"
)
这是完整的错误
[error] /home/mik/programing/posts/app/helper/Helper.scala:27: not found: value index
[error] index into "posts/test" id id.toString() fields (
[error] ^
[error] one error found
[error] (compile:compile) Compilation failed
[error] Total time: 2 s, completed Feb 15, 2014 1:34:54 PM
我在安装过程中遗漏了什么?
还是别的什么?
谢谢miki
答案 0 :(得分:4)
您的问题是缺少导入。作为您关联的文档states,,您还需要以下内容:
import com.sksamuel.elastic4s.ElasticDsl._
ElasticDsl
module是elastic4s'DSLs的“入口点”,包括您使用的index
和into
方法所在的IndexDsl
从
除了你曾经拥有的导入之外,还需要上述导入,因为在Scala中import statements are not recursive。