年齢(インデックスのフィールド)が50を超えるインデックスからドキュメントを削除しようとしています。したがって、基本的には範囲クエリを記述しようとしています。Scala から ElasticSearch への接続に成功し、インデックス全体を削除することもできました。しかし、範囲クエリを書くことができません。scalaのインデックスからドキュメントを削除するための範囲クエリを書くのを手伝ってくれませんか? 以下は、インデックス全体を削除するコード スニペットです。Java で多くの例を見てきましたが、SCALA でのソリューションが必要です。
import com.sksamuel.elastic4s.delete.DeleteByQueryRequest
import org.apache.http.HttpHost
import org.apache.http.auth.{AuthScope, Credentials, UsernamePasswordCredentials}
import org.apache.http.client.CredentialsProvider
import org.apache.http.impl.client.BasicCredentialsProvider
import org.apache.http.impl.nio.client.HttpAsyncClientBuilder
import org.elasticsearch.client.RestClient
import org.elasticsearch.client.RestClientBuilder
System.setProperty("javax.net.ssl.trustStore", "path of certificate")
System.setProperty("javax.net.ssl.trustStorePassword", "password")
val credentials = new UsernamePasswordCredentials("username", "password");
val credentialsProvider:CredentialsProvider = new BasicCredentialsProvider
credentialsProvider.setCredentials(AuthScope.ANY, credentials)
val client = RestClient.builder(new HttpHost("host", 9200,"https")).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
override def customizeHttpClient(httpClientBuilder: HttpAsyncClientBuilder): HttpAsyncClientBuilder = httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider)
}).build
// Delete entire index
val request = new Request("DELETE", "/products")
val response = client.performRequest(request)