弹性体和游戏框架2.2.1

MIk*_*ode 2 scala elasticsearch playframework-2.0 elastic4s

我试图通过使用elastic4s API和播放框架将一些数据索引到弹性搜索

我基本上是从控制器调用这个方法

 def test(){
 val client = ElasticClient.local
 client.execute { create index "bands" }
 client execute { index into "bands/singers" fields "name"->"chris martin" }
 client.close()

 }
Run Code Online (Sandbox Code Playgroud)

我没有在播放或弹性搜索日志中收到任何错误,

然后我检查了Sense插件,如果数据被索引,我得到了

  {
   "error": "IndexMissingException[[bands] missing]",
  "status": 404
   }
Run Code Online (Sandbox Code Playgroud)

看起来查询没有去服务器?...

mon*_*ack 6

这是因为创建索引不是同步的,因此您在创建索引完成之前尝试进行索引.

最简单的方法是通过调用使create index同步

client.sync.execute { create index "bands" }

哪个将阻止,直到创建索引,该索引应该<1秒.或者你可以将未来的工作归还.

编辑:在elastic4s 1.3中,同步已被替换为期货上的.await助手.

client.execute( create index "bands" ).await