From 1f69869824c5b94e23158c6ca57e1ac054765a39 Mon Sep 17 00:00:00 2001 From: Marcin Antas Date: Thu, 26 Sep 2024 20:24:42 +0200 Subject: [PATCH] Add Java search filters examples --- .../weaviate/docs/search/BasicSearchTest.java | 2 +- .../docs/search/FiltersSearchTest.java | 68 +++++++++++++++++++ .../docs/search/VectorSearchTest.java | 2 +- developers/weaviate/search/filters.md | 10 +++ 4 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 _includes/code/howto/java/src/test/java/io/weaviate/docs/search/FiltersSearchTest.java diff --git a/_includes/code/howto/java/src/test/java/io/weaviate/docs/search/BasicSearchTest.java b/_includes/code/howto/java/src/test/java/io/weaviate/docs/search/BasicSearchTest.java index 6e307db217..9de7e1fa79 100644 --- a/_includes/code/howto/java/src/test/java/io/weaviate/docs/search/BasicSearchTest.java +++ b/_includes/code/howto/java/src/test/java/io/weaviate/docs/search/BasicSearchTest.java @@ -11,8 +11,8 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -@Tag("crud") @Tag("search") +@Tag("basic") public class BasicSearchTest { private static WeaviateClient client; diff --git a/_includes/code/howto/java/src/test/java/io/weaviate/docs/search/FiltersSearchTest.java b/_includes/code/howto/java/src/test/java/io/weaviate/docs/search/FiltersSearchTest.java new file mode 100644 index 0000000000..d5d92e5bb1 --- /dev/null +++ b/_includes/code/howto/java/src/test/java/io/weaviate/docs/search/FiltersSearchTest.java @@ -0,0 +1,68 @@ +package io.weaviate.docs.search; + +import io.weaviate.client.Config; +import io.weaviate.client.WeaviateClient; +import io.weaviate.client.base.Result; +import io.weaviate.client.v1.filters.Operator; +import io.weaviate.client.v1.filters.WhereFilter; +import io.weaviate.client.v1.graphql.model.GraphQLResponse; +import io.weaviate.client.v1.graphql.query.argument.WhereArgument; +import io.weaviate.client.v1.graphql.query.fields.Field; +import io.weaviate.docs.helper.EnvHelper; +import static org.assertj.core.api.Assertions.assertThat; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Tag; +import org.junit.jupiter.api.Test; + +@Tag("search") +@Tag("filters") +public class FiltersSearchTest { + private static WeaviateClient client; + + @BeforeAll + public static void beforeAll() { + String scheme = EnvHelper.scheme("http"); + String host = EnvHelper.host("localhost"); + String port = EnvHelper.port("8080"); + + Config config = new Config(scheme, host + ":" + port); + client = new WeaviateClient(config); + + Result result = client.schema().allDeleter().run(); + assertThat(result).isNotNull() + .withFailMessage(() -> result.getError().toString()) + .returns(false, Result::hasErrors) + .withFailMessage(null) + .returns(true, Result::getResult); + } + + @Test + public void shouldPerformVectorSearch() { + filterWithOneCondition(); + } + + private void filterWithOneCondition() { + // START SingleFilter + Result result = client.graphQL().get() + .withClassName("JeopardyQuestion") + .withFields( + Field.builder().name("question").build(), + Field.builder().name("answer").build(), + Field.builder().name("round").build() + ) + // highlight-start + .withWhere(WhereArgument.builder() + .filter(WhereFilter.builder() + .path("round") + .operator(Operator.Equal) + .valueString("Double Jeopardy!") + .build() + ).build()) + // highlight-end + .withLimit(3) + .run(); + // END SingleFilter + assertThat(result).isNotNull() + .extracting(Result::getResult).isNotNull(); + } +} diff --git a/_includes/code/howto/java/src/test/java/io/weaviate/docs/search/VectorSearchTest.java b/_includes/code/howto/java/src/test/java/io/weaviate/docs/search/VectorSearchTest.java index 8fb9b71e02..4702b526c6 100644 --- a/_includes/code/howto/java/src/test/java/io/weaviate/docs/search/VectorSearchTest.java +++ b/_includes/code/howto/java/src/test/java/io/weaviate/docs/search/VectorSearchTest.java @@ -21,7 +21,7 @@ import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; -@Tag("crud") +@Tag("search") @Tag("vector-search") public class VectorSearchTest { diff --git a/developers/weaviate/search/filters.md b/developers/weaviate/search/filters.md index 0ccfea99c4..0bf8d77005 100644 --- a/developers/weaviate/search/filters.md +++ b/developers/weaviate/search/filters.md @@ -13,6 +13,7 @@ import PyCodeV3 from '!!raw-loader!/_includes/code/howto/search.filters-v3.py'; import JavaScriptCode from '!!raw-loader!/_includes/code/howto/search.filters.ts'; import JavaScriptCodeLegacy from '!!raw-loader!/_includes/code/howto/search.filters-v2.ts'; import GoCode from '!!raw-loader!/_includes/code/howto/go/docs/mainpkg/search-filters_test.go'; +import JavaCode from '!!raw-loader!/_includes/code/howto/java/src/test/java/io/weaviate/docs/search/FiltersSearchTest.java'; Filters let you include, or exclude, particular objects from your result set based on provided conditions.
@@ -68,6 +69,15 @@ Add a `filter` to your query, to limit the result set. /> + + + +