3

我试图通过使用 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

我在安装过程中错过了什么吗?

还是别的什么??

谢谢三木

4

1 回答 1

4

您的问题是缺少导入。正如您链接的文档所述您还需要以下内容:

import com.sksamuel.elastic4s.ElasticDsl._

ElasticDsl模块是 elastic4s 的DSL的“入口点” ,包括您使用IndexDsl的方法indexinto方法的来源。

除了您所拥有的之外,上述导入是必要的,因为在 Scala 中,导入语句不是递归的

于 2014-02-15T13:57:58.750 回答