如何在 elastic4s 中创建索引后更改索引设置?

How to change settings of an index after creation in elastic4s?

我需要在批量索引(千兆字节)过程中禁用索引刷新,并在完成后重新设置。但是从 elastic4s 的源代码中,除了在创建索引时,我找不到其他方法来做到这一点……这可能吗?或者有解决方法吗?

在java客户端中:

client
  .admin
  .indices()
  .prepareUpdateSettings()
  .setSettings(settings)
  .setIndices(indexName)
  .execute()
  .actionGet()

本地:

curl -XPUT 'localhost:9200/my_index/_settings' -d '
{
    "index" : {
        "refresh_interval" : -1
    }
}
'

这就是你在 elastic4s 中的做法(例如设置刷新间隔 属性)。

client.execute {
  update settings "myindex" set Map("index.refresh_interval" -> "10s")
}

注意:并非所有设置都可以在运行时或创建索引后更改。

注2:我在回答你的问题时添加了这个API,并且仅适用于1.5.1以上的版本。

注意 3: 如果任何人需要,我可以将其移植到 1.4.x 或 1.3.x。