From 90321b2692c0b8a767307edff70ab1a04ac3d428 Mon Sep 17 00:00:00 2001 From: Philippus Baalman Date: Tue, 16 Jul 2024 07:39:59 +0200 Subject: [PATCH] Resolve warnings (#3117) * Replace deprecated get(id) * Replace deprecated update(id) * Replace deprecated updateIn(indexes) * Undeprecate string and bytes methods * Remove unused imports * Replace deprecated schedule with scheduleWithFixedDelay * Replace deprecated send with send(sttpBackend) * Replace deprecated unsafeCompat with unsafe * Avoid deprecated DenseVectorField apply method * Replace deprecated removeAlias and addAlias methods * Replace deprecated .right.value syntax --- .../sttp/SttpRequestHttpClient.scala | 4 +- .../builders/FilterAggregationBuilder.scala | 1 - .../KeyedFiltersAggregationBuilder.scala | 1 - .../mappings/DenseVectorFieldTest.scala | 10 ++--- .../searches/MultiSearchHandlerTest.scala | 2 +- .../update/UpdateByQueryBodyFnTest.scala | 4 +- .../sksamuel/elastic4s/zio/ZIOTaskTest.scala | 2 +- .../streams/BulkIndexingSubscriber.scala | 2 +- .../elastic4s/json/XContentBuilder.scala | 2 - .../elastic4s/testkit/ElasticSugar.scala | 2 +- .../elastic4s/testkit/IndexMatchers.scala | 2 +- .../sksamuel/elastic4s/HitReaderTest.scala | 12 ++--- .../requests/aliases/AliasesHttpTest.scala | 4 +- .../elastic4s/requests/get/GetTest.scala | 22 +++++----- .../elastic4s/requests/get/MultiGetTest.scala | 20 ++++----- .../requests/update/UpdateTest.scala | 44 +++++++++---------- 16 files changed, 65 insertions(+), 69 deletions(-) diff --git a/elastic4s-client-sttp/src/main/scala/com/sksamuel/elastic4s/sttp/SttpRequestHttpClient.scala b/elastic4s-client-sttp/src/main/scala/com/sksamuel/elastic4s/sttp/SttpRequestHttpClient.scala index 66a70a997..e2898bf80 100644 --- a/elastic4s-client-sttp/src/main/scala/com/sksamuel/elastic4s/sttp/SttpRequestHttpClient.scala +++ b/elastic4s-client-sttp/src/main/scala/com/sksamuel/elastic4s/sttp/SttpRequestHttpClient.scala @@ -81,8 +81,8 @@ class SttpRequestHttpClient(nodeEndpoint: ElasticNodeEndpoint)( */ override def send(request: ElasticRequest, callback: Either[Throwable, HttpResponse] => Unit): Unit = { val f = request.entity match { - case Some(entity) => async(request.method, request.endpoint, request.params, request.headers, entity).send() - case None => async(request.method, request.endpoint, request.params, request.headers).send() + case Some(entity) => async(request.method, request.endpoint, request.params, request.headers, entity).send(sttpBackend) + case None => async(request.method, request.endpoint, request.params, request.headers).send(sttpBackend) } f.onComplete { case Success(resp) => callback(Right(processResponse(resp))) diff --git a/elastic4s-core/src/main/scala/com/sksamuel/elastic4s/requests/searches/aggs/builders/FilterAggregationBuilder.scala b/elastic4s-core/src/main/scala/com/sksamuel/elastic4s/requests/searches/aggs/builders/FilterAggregationBuilder.scala index a07ae6194..cda1975da 100644 --- a/elastic4s-core/src/main/scala/com/sksamuel/elastic4s/requests/searches/aggs/builders/FilterAggregationBuilder.scala +++ b/elastic4s-core/src/main/scala/com/sksamuel/elastic4s/requests/searches/aggs/builders/FilterAggregationBuilder.scala @@ -1,7 +1,6 @@ package com.sksamuel.elastic4s.requests.searches.aggs.builders import com.sksamuel.elastic4s.handlers.searches.queries -import com.sksamuel.elastic4s.handlers.searches.queries.QueryBuilderFn import com.sksamuel.elastic4s.json.{XContentBuilder, XContentFactory} import com.sksamuel.elastic4s.requests.searches.aggs.{AbstractAggregation, AggMetaDataFn, FilterAggregation, SubAggsBuilderFn} diff --git a/elastic4s-core/src/main/scala/com/sksamuel/elastic4s/requests/searches/aggs/builders/KeyedFiltersAggregationBuilder.scala b/elastic4s-core/src/main/scala/com/sksamuel/elastic4s/requests/searches/aggs/builders/KeyedFiltersAggregationBuilder.scala index b694d5ea0..2c29c485d 100644 --- a/elastic4s-core/src/main/scala/com/sksamuel/elastic4s/requests/searches/aggs/builders/KeyedFiltersAggregationBuilder.scala +++ b/elastic4s-core/src/main/scala/com/sksamuel/elastic4s/requests/searches/aggs/builders/KeyedFiltersAggregationBuilder.scala @@ -1,7 +1,6 @@ package com.sksamuel.elastic4s.requests.searches.aggs.builders import com.sksamuel.elastic4s.handlers.searches.queries -import com.sksamuel.elastic4s.handlers.searches.queries.QueryBuilderFn import com.sksamuel.elastic4s.json.{XContentBuilder, XContentFactory} import com.sksamuel.elastic4s.requests.searches.aggs.{AbstractAggregation, AggMetaDataFn, KeyedFiltersAggregation, SubAggsBuilderFn} diff --git a/elastic4s-core/src/test/scala/com/sksamuel/elastic4s/requests/mappings/DenseVectorFieldTest.scala b/elastic4s-core/src/test/scala/com/sksamuel/elastic4s/requests/mappings/DenseVectorFieldTest.scala index a6c1c5291..0ba3fc216 100644 --- a/elastic4s-core/src/test/scala/com/sksamuel/elastic4s/requests/mappings/DenseVectorFieldTest.scala +++ b/elastic4s-core/src/test/scala/com/sksamuel/elastic4s/requests/mappings/DenseVectorFieldTest.scala @@ -11,13 +11,13 @@ class DenseVectorFieldTest extends AnyFlatSpec with Matchers with ElasticApi { private val denseVectorIndexOptions = DenseVectorIndexOptions(Int8Hnsw, Some(10), Some(100), Some(1.0f)) "A DenseVectorField" should "support dims property" in { - val field = DenseVectorField(name = "myfield", dims = 3) + val field = DenseVectorField(name = "myfield").dims(3) DenseVectorFieldBuilderFn.build(field).string shouldBe - """{"type":"dense_vector","dims":3,"index":false}""" + """{"type":"dense_vector","dims":3}""" } it should "support all similarity options" in { - val field = DenseVectorField(name = "myfield", dims = 3, index = true, similarity = L2Norm) + val field = DenseVectorField(name = "myfield").dims(3).index(true).similarity(L2Norm) DenseVectorFieldBuilderFn.build(field).string shouldBe """{"type":"dense_vector","dims":3,"index":true,"similarity":"l2_norm"}""" DenseVectorFieldBuilderFn.build(field.similarity(DotProduct)).string shouldBe @@ -29,9 +29,9 @@ class DenseVectorFieldTest extends AnyFlatSpec with Matchers with ElasticApi { } it should "support elementType property" in { - val field = DenseVectorField(name = "myfield", dims = 3).elementType("byte") + val field = DenseVectorField(name = "myfield").dims(3).elementType("byte") DenseVectorFieldBuilderFn.build(field).string shouldBe - """{"type":"dense_vector","element_type":"byte","dims":3,"index":false}""" + """{"type":"dense_vector","element_type":"byte","dims":3}""" } it should "not set similarity or indexOptions when index = false" in { diff --git a/elastic4s-core/src/test/scala/com/sksamuel/elastic4s/requests/searches/MultiSearchHandlerTest.scala b/elastic4s-core/src/test/scala/com/sksamuel/elastic4s/requests/searches/MultiSearchHandlerTest.scala index 18f2b02f3..74eeb8483 100644 --- a/elastic4s-core/src/test/scala/com/sksamuel/elastic4s/requests/searches/MultiSearchHandlerTest.scala +++ b/elastic4s-core/src/test/scala/com/sksamuel/elastic4s/requests/searches/MultiSearchHandlerTest.scala @@ -51,7 +51,7 @@ class MultiSearchHandlerTest extends AnyFlatSpec with Matchers with EitherValues | ] |}""".stripMargin val response = HttpResponse(200, Some(StringEntity(responseBody, None)), Map.empty) - val mResponse = MultiSearchHandler.responseHandler.handle(response).right.value + val mResponse = MultiSearchHandler.responseHandler.handle(response).value mResponse.items should have size 2 mResponse.items.map(_.status) shouldEqual Seq(200, 400) } diff --git a/elastic4s-core/src/test/scala/com/sksamuel/elastic4s/requests/update/UpdateByQueryBodyFnTest.scala b/elastic4s-core/src/test/scala/com/sksamuel/elastic4s/requests/update/UpdateByQueryBodyFnTest.scala index e7b47b7ea..adfffc471 100644 --- a/elastic4s-core/src/test/scala/com/sksamuel/elastic4s/requests/update/UpdateByQueryBodyFnTest.scala +++ b/elastic4s-core/src/test/scala/com/sksamuel/elastic4s/requests/update/UpdateByQueryBodyFnTest.scala @@ -12,13 +12,13 @@ class UpdateByQueryBodyFnTest extends AnyWordSpec with JsonSugar { "update by query" should { "generate correct body" when { "script is specified" in { - val q = updateIn("test").query(matchQuery("field", 123)).script(Script("script", Some("painless"))) + val q = updateByQuerySync("test", matchQuery("field", 123)).script(Script("script", Some("painless"))) UpdateByQueryBodyFn(q).string should matchJson( """{"query":{"match":{"field":{"query":123}}},"script":{"lang":"painless","source":"script"}}""" ) } "script is not specified" in { - val q = updateIn("test").query(matchQuery("field", 123)) + val q = updateByQuerySync("test", matchQuery("field", 123)) UpdateByQueryBodyFn(q).string should matchJson( """{"query":{"match":{"field":{"query":123}}}}""" ) diff --git a/elastic4s-effect-zio/src/test/scala/com/sksamuel/elastic4s/zio/ZIOTaskTest.scala b/elastic4s-effect-zio/src/test/scala/com/sksamuel/elastic4s/zio/ZIOTaskTest.scala index 6c455db17..1b1cec7cf 100644 --- a/elastic4s-effect-zio/src/test/scala/com/sksamuel/elastic4s/zio/ZIOTaskTest.scala +++ b/elastic4s-effect-zio/src/test/scala/com/sksamuel/elastic4s/zio/ZIOTaskTest.scala @@ -11,7 +11,7 @@ class ZIOTaskTest extends AnyFlatSpec with Matchers with DockerTests with Before implicit class RichZIO[A](task: Task[A]) { def unsafeRun: Either[Throwable, A] = { - Unsafe.unsafeCompat { implicit u => + Unsafe.unsafe { implicit u => zio.Runtime.default.unsafe.run(task).toEither } } diff --git a/elastic4s-http-streams/src/main/scala/com/sksamuel/elastic4s/streams/BulkIndexingSubscriber.scala b/elastic4s-http-streams/src/main/scala/com/sksamuel/elastic4s/streams/BulkIndexingSubscriber.scala index 57141832c..00464e049 100644 --- a/elastic4s-http-streams/src/main/scala/com/sksamuel/elastic4s/streams/BulkIndexingSubscriber.scala +++ b/elastic4s-http-streams/src/main/scala/com/sksamuel/elastic4s/streams/BulkIndexingSubscriber.scala @@ -110,7 +110,7 @@ class BulkActor[T](client: ElasticClient, // It has been suggested we can use ReceiveTimeout here, but one reason we can't is because BulkResult messages, // will cause the timeout period to be reset, but they shouldn't interfere with the flush interval. private val flushIntervalScheduler: Option[Cancellable] = config.flushInterval.map { interval => - system.scheduler.schedule(interval, interval, self, BulkActor.ForceIndexing) + system.scheduler.scheduleWithFixedDelay(interval, interval, self, BulkActor.ForceIndexing) } // If flushAfter is specified then after each message, a scheduler is created to force indexing if no documents diff --git a/elastic4s-json-builder/src/main/scala/com/sksamuel/elastic4s/json/XContentBuilder.scala b/elastic4s-json-builder/src/main/scala/com/sksamuel/elastic4s/json/XContentBuilder.scala index df49b34de..6ad6184bf 100755 --- a/elastic4s-json-builder/src/main/scala/com/sksamuel/elastic4s/json/XContentBuilder.scala +++ b/elastic4s-json-builder/src/main/scala/com/sksamuel/elastic4s/json/XContentBuilder.scala @@ -23,10 +23,8 @@ class XContentBuilder(root: JsonValue) { def value: JsonValue = root // generate a json string from the contents of the builder - @deprecated("will be replaced with a pluggable system") def string: String = JacksonBuilder.writeAsString(root) - @deprecated("will be replaced with a pluggable system") def bytes: Array[Byte] = JacksonBuilder.writeAsString(root).getBytes def array(field: String, strings: Array[String]): XContentBuilder = { diff --git a/elastic4s-testkit/src/main/scala/com/sksamuel/elastic4s/testkit/ElasticSugar.scala b/elastic4s-testkit/src/main/scala/com/sksamuel/elastic4s/testkit/ElasticSugar.scala index 8120fc554..1f3fce44b 100644 --- a/elastic4s-testkit/src/main/scala/com/sksamuel/elastic4s/testkit/ElasticSugar.scala +++ b/elastic4s-testkit/src/main/scala/com/sksamuel/elastic4s/testkit/ElasticSugar.scala @@ -156,7 +156,7 @@ trait ElasticSugar extends ElasticDsl { blockUntil(s"Expected document $id to have version $version") { () => client .execute { - get(id).from(index) + get(index, id) } .await .result diff --git a/elastic4s-testkit/src/main/scala/com/sksamuel/elastic4s/testkit/IndexMatchers.scala b/elastic4s-testkit/src/main/scala/com/sksamuel/elastic4s/testkit/IndexMatchers.scala index 3574743b7..568ee02c0 100644 --- a/elastic4s-testkit/src/main/scala/com/sksamuel/elastic4s/testkit/IndexMatchers.scala +++ b/elastic4s-testkit/src/main/scala/com/sksamuel/elastic4s/testkit/IndexMatchers.scala @@ -50,7 +50,7 @@ trait IndexMatchers extends Matchers { new Matcher[String] { override def apply(left: String): MatchResult = { - val exists = client.execute(get(expectedId.toString).from(left)).await(timeout).result.exists + val exists = client.execute(get(left, expectedId.toString)).await(timeout).result.exists MatchResult( exists, s"Index $left did not contain expected document $expectedId", diff --git a/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/HitReaderTest.scala b/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/HitReaderTest.scala index e6c29ee66..548e43938 100644 --- a/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/HitReaderTest.scala +++ b/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/HitReaderTest.scala @@ -87,7 +87,7 @@ class HitReaderTest extends AnyFlatSpec with MockitoSugar with DockerTests with it should "unmarshall safely a get response" in { val team = client.execute { - get("1").from(IndexName) + get(IndexName, "1") }.await.result.safeTo[Team] team shouldBe Success(Team("Middlesbrough", "Fortress Riverside", 1876)) @@ -95,7 +95,7 @@ class HitReaderTest extends AnyFlatSpec with MockitoSugar with DockerTests with it should "unmarshall a get response" in { val team = client.execute { - get("1").from(IndexName) + get(IndexName, "1") }.await.result.to[Team] team shouldBe Team("Middlesbrough", "Fortress Riverside", 1876) @@ -104,8 +104,8 @@ class HitReaderTest extends AnyFlatSpec with MockitoSugar with DockerTests with it should "unmarshall safely multi get results" in { val teams = client.execute { multiget( - get("1").from(IndexName), - get("2").from(IndexName) + get(IndexName, "1"), + get(IndexName, "2") ) }.await.result.safeTo[Team] @@ -118,8 +118,8 @@ class HitReaderTest extends AnyFlatSpec with MockitoSugar with DockerTests with it should "unmarshall multi get results" in { val teams = client.execute { multiget( - get("1").from(IndexName), - get("2").from(IndexName) + get(IndexName, "1"), + get(IndexName, "2") ) }.await.result.to[Team] diff --git a/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/aliases/AliasesHttpTest.scala b/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/aliases/AliasesHttpTest.scala index 1651e0996..52d97b60b 100644 --- a/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/aliases/AliasesHttpTest.scala +++ b/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/aliases/AliasesHttpTest.scala @@ -40,8 +40,8 @@ class AliasesHttpTest extends AnyWordSpec with Matchers with DockerTests { "multiple operations" in { client.execute { aliases( - removeAlias("beaches_alias").on("beaches"), - addAlias("mountains_alias").on("mountains") + removeAlias("beaches_alias", "beaches"), + addAlias("mountains_alias", "mountains") ) }.await.result should be(AliasActionResponse(true)) diff --git a/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/get/GetTest.scala b/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/get/GetTest.scala index fb048a022..52b12a40d 100644 --- a/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/get/GetTest.scala +++ b/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/get/GetTest.scala @@ -43,7 +43,7 @@ class GetTest extends AnyFlatSpec with Matchers with DockerTests { "A Get request" should "retrieve a document by id" in { val resp = client.execute { - get("8") from "beer" + get("beer", "8") }.await.result resp.exists shouldBe true @@ -53,7 +53,7 @@ class GetTest extends AnyFlatSpec with Matchers with DockerTests { it should "retrieve a document by id with source" in { val resp = client.execute { - get("8") from "beer" + get("beer", "8") }.await.result resp.exists shouldBe true @@ -64,7 +64,7 @@ class GetTest extends AnyFlatSpec with Matchers with DockerTests { it should "retrieve a document by id without source" in { val resp = client.execute { - get("8") from "beer" fetchSourceContext false + get("beer", "8") fetchSourceContext false }.await.result resp.exists should be(true) @@ -76,7 +76,7 @@ class GetTest extends AnyFlatSpec with Matchers with DockerTests { it should "support source includes" in { val resp = client.execute { - get("8") from "beer" fetchSourceInclude "brand" + get("beer", "8") fetchSourceInclude "brand" }.await.result resp.exists should be(true) @@ -87,7 +87,7 @@ class GetTest extends AnyFlatSpec with Matchers with DockerTests { it should "support source excludes" in { val resp = client.execute { - get("8") from "beer" fetchSourceExclude "brand" + get("beer", "8") fetchSourceExclude "brand" }.await.result resp.exists should be(true) @@ -98,7 +98,7 @@ class GetTest extends AnyFlatSpec with Matchers with DockerTests { it should "support source includes and excludes" in { val resp = client.execute { - get("8") from "beer" fetchSourceContext(List("name"), List("brand")) + get("beer", "8") fetchSourceContext(List("name"), List("brand")) }.await.result resp.exists should be(true) @@ -109,7 +109,7 @@ class GetTest extends AnyFlatSpec with Matchers with DockerTests { it should "support specifying source includes and excludes separately" in { val resp = client.execute { - get("8") from "beer" fetchSourceInclude(List("name")) fetchSourceExclude(List("bran")) + get("beer", "8") fetchSourceInclude(List("name")) fetchSourceExclude(List("bran")) }.await.result resp.exists should be(true) @@ -120,7 +120,7 @@ class GetTest extends AnyFlatSpec with Matchers with DockerTests { it should "retrieve a document supporting stored fields" in { val resp = client.execute { - get("4") from "beer" storedFields("name", "brand") + get("beer", "4") storedFields("name", "brand") }.await.result resp.exists should be(true) @@ -132,7 +132,7 @@ class GetTest extends AnyFlatSpec with Matchers with DockerTests { it should "retrieve multi value fields" in { val resp = client.execute { - get("4") from "beer" storedFields "ingredients" + get("beer", "4") storedFields "ingredients" }.await.result val field = resp.storedField("ingredients") @@ -141,13 +141,13 @@ class GetTest extends AnyFlatSpec with Matchers with DockerTests { it should "return Left[RequestFailure] when index does not exist" in { client.execute { - get("4") from "qqqqqqqqqq" + get("qqqqqqqqqq", "4") }.await.error.`type` shouldBe "index_not_found_exception" } it should "return Right with exists=false when the doc does not exist" in { client.execute { - get("111111") from "beer" + get("beer", "111111") }.await.result.exists shouldBe false } } diff --git a/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/get/MultiGetTest.scala b/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/get/MultiGetTest.scala index 7374e9823..250af47e1 100644 --- a/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/get/MultiGetTest.scala +++ b/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/get/MultiGetTest.scala @@ -38,9 +38,9 @@ class MultiGetTest extends AnyFlatSpec with MockitoSugar with DockerTests { val resp = client.execute( multiget( - get("3").from("coldplay"), - get("5") from "coldplay", - get("7") from "coldplay" + get("coldplay", "3"), + get("coldplay", "5"), + get("coldplay", "7") ) ).await.result @@ -60,8 +60,8 @@ class MultiGetTest extends AnyFlatSpec with MockitoSugar with DockerTests { val resp = client.execute( multiget( - get("3").from("coldplay"), - get("711111") from "coldplay" + get("coldplay", "3"), + get("coldplay", "711111") ) ).await.result @@ -74,8 +74,8 @@ class MultiGetTest extends AnyFlatSpec with MockitoSugar with DockerTests { val resp = client.execute( multiget( - get("3") from "coldplay" storedFields("name", "year"), - get("5") from "coldplay" storedFields "name" + get("coldplay", "3") storedFields("name", "year"), + get("coldplay", "5") storedFields "name" ) ).await.result @@ -88,8 +88,8 @@ class MultiGetTest extends AnyFlatSpec with MockitoSugar with DockerTests { val resp = client.execute( multiget( - get("3") from "coldplay" fetchSourceContext Seq("name", "year"), - get("5") from "coldplay" fetchSourceContext Seq("name") + get("coldplay", "3") fetchSourceContext Seq("name", "year"), + get("coldplay", "5") fetchSourceContext Seq("name") ) ).await.result resp.size shouldBe 2 @@ -99,7 +99,7 @@ class MultiGetTest extends AnyFlatSpec with MockitoSugar with DockerTests { it should "retrieve documents by id with routing spec" in { val resp = client.execute( - multiget(get("3") from "coldplay" routing "3") + multiget(get("coldplay", "3") routing "3") ).await.result resp.size shouldBe 1 diff --git a/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/update/UpdateTest.scala b/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/update/UpdateTest.scala index 15c16ab01..287416ec9 100644 --- a/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/update/UpdateTest.scala +++ b/elastic4s-tests/src/test/scala/com/sksamuel/elastic4s/requests/update/UpdateTest.scala @@ -43,13 +43,13 @@ class UpdateTest "an update request" should "support field based update" in { client.execute { - update("5").in("hans").doc( + updateById("hans", "5").doc( "name" -> "man of steel" ).refresh(RefreshPolicy.Immediate) }.await.result.result shouldBe "updated" client.execute { - get("5").from("hans").storedFields("name") + get("hans", "5").storedFields("name") }.await.result.storedFieldsAsMap shouldBe Map("name" -> List("man of steel")) } @@ -64,62 +64,62 @@ class UpdateTest ) ) client.execute { - update("5").in("hans").doc(document).refresh(RefreshPolicy.Immediate) + updateById("hans", "5").doc(document).refresh(RefreshPolicy.Immediate) }.await.result.result shouldBe "updated" client.execute { - get("5").from("hans") + get("hans", "5") }.await.result.sourceAsMap.get(fieldName).value shouldBe document.get(fieldName).value } it should "support string based update" in { client.execute { - update("5").in("hans").doc(""" { "name" : "inception" } """).refresh(RefreshPolicy.Immediate) + updateById("hans", "5").doc(""" { "name" : "inception" } """).refresh(RefreshPolicy.Immediate) }.await.result.result shouldBe "updated" client.execute { - get("5").from("hans").storedFields("name") + get("hans", "5").storedFields("name") }.await.result.storedFieldsAsMap shouldBe Map("name" -> List("inception")) } it should "support field based upsert" in { client.execute { - update("5").in("hans").docAsUpsert( + updateById("hans", "5").docAsUpsert( "name" -> "batman" ).refresh(RefreshPolicy.Immediate) }.await.result.result shouldBe "updated" client.execute { - get("5").from("hans").storedFields("name") + get("hans", "5").storedFields("name") }.await.result.storedFieldsAsMap shouldBe Map("name" -> List("batman")) } it should "support string based upsert" in { client.execute { - update("44").in("hans").docAsUpsert(""" { "name" : "pirates of the caribbean" } """).refresh(RefreshPolicy.Immediate) + updateById("hans", "44").docAsUpsert(""" { "name" : "pirates of the caribbean" } """).refresh(RefreshPolicy.Immediate) }.await.result.result shouldBe "created" client.execute { - get("44").from("hans").storedFields("name") + get("hans", "44").storedFields("name") }.await.result.storedFieldsAsMap shouldBe Map("name" -> List("pirates of the caribbean")) } it should "keep existing fields with partial update" in { client.execute { - update("5").in("hans").docAsUpsert( + updateById("hans", "5").docAsUpsert( "length" -> 12.34 ).refresh(RefreshPolicy.Immediate) }.await.result.result shouldBe "updated" client.execute { - get("5").from("hans").storedFields("name") + get("hans", "5").storedFields("name") }.await.result.storedFieldsAsMap shouldBe Map("name" -> List("batman")) } it should "insert non existent doc when using docAsUpsert" in { client.execute { - update("14").in("hans").docAsUpsert( + updateById("hans", "14").docAsUpsert( "name" -> "hunt for the red october" ) }.await.result.result shouldBe "created" @@ -127,7 +127,7 @@ class UpdateTest it should "return errors when the index does not exist" in { val resp = client.execute { - update("5").in("wowooasdsad").doc( + updateById("wowooasdsad", "5").doc( "name" -> "gladiator" ) }.await @@ -137,7 +137,7 @@ class UpdateTest it should "return errors when the id does not exist" in { val resp = client.execute { - update("234234").in("hans").doc( + updateById("hans", "234234").doc( "name" -> "gladiator" ) }.await @@ -147,7 +147,7 @@ class UpdateTest it should "not return source by default" in { val resp = client.execute { - update("666").in("hans").docAsUpsert( + updateById("hans", "666").docAsUpsert( "name" -> "dunkirk" ).refresh(RefreshPolicy.Immediate) }.await @@ -156,7 +156,7 @@ class UpdateTest it should "return source when specified" in { val resp = client.execute { - update("667").in("hans").docAsUpsert( + updateById("hans", "667").docAsUpsert( "name" -> "thin red line" ).refresh(RefreshPolicy.Immediate).fetchSource(true) }.await @@ -165,7 +165,7 @@ class UpdateTest it should "include the original json" in { val resp = client.execute { - update("555").in("hans").docAsUpsert( + updateById("hans", "555").docAsUpsert( "name" -> "spider man" ).refresh(RefreshPolicy.Immediate).fetchSource(true) }.await @@ -176,22 +176,22 @@ class UpdateTest val id = UUID.randomUUID.toString val result = client.execute { - update(id).in("hans").docAsUpsert( + updateById("hans", id).docAsUpsert( "name" -> "rain man" ).refresh(RefreshPolicy.Immediate) }.await val wrongPrimaryTermResult = client.execute { - update(id).in("hans").doc(""" { "name" : "madagascar" } """).ifSeqNo(result.result.seqNo) + updateById("hans", id).doc(""" { "name" : "madagascar" } """).ifSeqNo(result.result.seqNo) .ifPrimaryTerm(result.result.primaryTerm + 1).refresh(RefreshPolicy.Immediate) }.await wrongPrimaryTermResult.error.toString should include ("version_conflict_engine_exception") val wrongSeqNoResult = client.execute { - update(id).in("hans").doc(""" { "name" : "madagascar" } """).ifSeqNo(result.result.seqNo + 1) + updateById("hans", id).doc(""" { "name" : "madagascar" } """).ifSeqNo(result.result.seqNo + 1) .ifPrimaryTerm(result.result.primaryTerm).refresh(RefreshPolicy.Immediate) }.await wrongSeqNoResult.error.toString should include ("version_conflict_engine_exception") val successfulUpdateResult = client.execute { - update(id).in("hans").doc(""" { "name" : "madagascar" } """).ifSeqNo(result.result.seqNo) + updateById("hans", id).doc(""" { "name" : "madagascar" } """).ifSeqNo(result.result.seqNo) .ifPrimaryTerm(result.result.primaryTerm).refresh(RefreshPolicy.Immediate) }.await successfulUpdateResult.isSuccess shouldBe true