From 0fd00e09fcf3f6cca5357a908b5d87663266f1c1 Mon Sep 17 00:00:00 2001 From: Vacha Shah Date: Tue, 3 Oct 2023 20:48:31 +0000 Subject: [PATCH] Running spotless for samples Signed-off-by: Vacha Shah --- .../org/opensearch/client/samples/Bulk.java | 52 ++---- .../client/samples/DataStreamBasics.java | 13 +- .../client/samples/IndexingBasics.java | 40 ++-- .../client/samples/PointInTime.java | 33 ++-- .../client/samples/SampleClient.java | 47 ++--- .../org/opensearch/client/samples/Search.java | 175 ++++++------------ .../client/samples/knn/KnnBasics.java | 34 ++-- .../client/samples/knn/KnnBooleanFilter.java | 58 +++--- .../samples/knn/KnnEfficientFilter.java | 131 ++++++------- .../client/samples/knn/KnnPainlessScript.java | 49 +++-- .../client/samples/knn/KnnScriptScore.java | 53 +++--- .../client/samples/util/IndexData.java | 3 +- .../client/samples/util/RandUtil.java | 2 +- 13 files changed, 279 insertions(+), 411 deletions(-) diff --git a/samples/src/main/java/org/opensearch/client/samples/Bulk.java b/samples/src/main/java/org/opensearch/client/samples/Bulk.java index b3f84f04e6..1613dc9311 100644 --- a/samples/src/main/java/org/opensearch/client/samples/Bulk.java +++ b/samples/src/main/java/org/opensearch/client/samples/Bulk.java @@ -10,7 +10,6 @@ import java.util.ArrayList; import java.util.List; - import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.opensearch.client.opensearch._types.Refresh; @@ -46,51 +45,38 @@ public static void main(String[] args) { if (!client.indices().exists(r -> r.index(indexName)).value()) { LOGGER.info("Creating index {}", indexName); - IndexSettings settings = new IndexSettings.Builder() - .numberOfShards("2") - .numberOfReplicas("1") - .build(); - TypeMapping mapping = new TypeMapping.Builder() - .properties("age", new Property.Builder().integer(new IntegerNumberProperty.Builder().build()).build()) - .build(); - CreateIndexRequest createIndexRequest = new CreateIndexRequest.Builder() - .index(indexName) - .settings(settings) - .mappings(mapping) - .build(); + IndexSettings settings = new IndexSettings.Builder().numberOfShards("2").numberOfReplicas("1").build(); + TypeMapping mapping = new TypeMapping.Builder().properties( + "age", + new Property.Builder().integer(new IntegerNumberProperty.Builder().build()).build() + ).build(); + CreateIndexRequest createIndexRequest = new CreateIndexRequest.Builder().index(indexName) + .settings(settings) + .mappings(mapping) + .build(); client.indices().create(createIndexRequest); } LOGGER.info("Bulk indexing documents"); ArrayList ops = new ArrayList<>(); IndexData doc1 = new IndexData("Document 1", "The text of document 1"); - ops.add(new BulkOperation.Builder().index( - IndexOperation.of(io -> io.index(indexName).id("id1").document(doc1)) - ).build()); + ops.add(new BulkOperation.Builder().index(IndexOperation.of(io -> io.index(indexName).id("id1").document(doc1))).build()); IndexData doc2 = new IndexData("Document 2", "The text of document 2"); - ops.add(new BulkOperation.Builder().index( - IndexOperation.of(io -> io.index(indexName).id("id2").document(doc2)) - ).build()); + ops.add(new BulkOperation.Builder().index(IndexOperation.of(io -> io.index(indexName).id("id2").document(doc2))).build()); IndexData doc3 = new IndexData("Document 3", "The text of document 3"); - ops.add(new BulkOperation.Builder().index( - IndexOperation.of(io -> io.index(indexName).id("id3").document(doc3)) - ).build()); + ops.add(new BulkOperation.Builder().index(IndexOperation.of(io -> io.index(indexName).id("id3").document(doc3))).build()); - BulkRequest.Builder bulkReq = new BulkRequest.Builder() - .index(indexName) - .operations(ops) - .refresh(Refresh.WaitFor); + BulkRequest.Builder bulkReq = new BulkRequest.Builder().index(indexName).operations(ops).refresh(Refresh.WaitFor); BulkResponse bulkResponse = client.bulk(bulkReq.build()); LOGGER.info("Bulk response items: {}", bulkResponse.items().size()); Query query = Query.of(qb -> qb.match(mb -> mb.field("title").query(fv -> fv.stringValue("Document")))); - final SearchRequest.Builder searchReq = new SearchRequest.Builder() - .allowPartialSearchResults(false) - .index(List.of(indexName)) - .size(10) - .source(sc -> sc.fetch(false)) - .ignoreThrottled(false) - .query(query); + final SearchRequest.Builder searchReq = new SearchRequest.Builder().allowPartialSearchResults(false) + .index(List.of(indexName)) + .size(10) + .source(sc -> sc.fetch(false)) + .ignoreThrottled(false) + .query(query); SearchResponse searchResponse = client.search(searchReq.build(), IndexData.class); LOGGER.info("Found {} documents", searchResponse.hits().hits().size()); diff --git a/samples/src/main/java/org/opensearch/client/samples/DataStreamBasics.java b/samples/src/main/java/org/opensearch/client/samples/DataStreamBasics.java index e6d8bf5875..762e94c6bf 100644 --- a/samples/src/main/java/org/opensearch/client/samples/DataStreamBasics.java +++ b/samples/src/main/java/org/opensearch/client/samples/DataStreamBasics.java @@ -38,15 +38,12 @@ public static void main(String[] args) { String dataStreamName = "sample-data-stream-1"; // Create an index template which configures data stream - PutIndexTemplateRequest putIndexTemplateRequest = new PutIndexTemplateRequest.Builder() - .name(dataStreamIndexTemplateName) - .indexPatterns(namePattern) - .dataStream(new DataStream.Builder() - .timestampField(t -> t.name(timestampFieldName)) - .build()) - .build(); + PutIndexTemplateRequest putIndexTemplateRequest = new PutIndexTemplateRequest.Builder().name(dataStreamIndexTemplateName) + .indexPatterns(namePattern) + .dataStream(new DataStream.Builder().timestampField(t -> t.name(timestampFieldName)).build()) + .build(); client.indices().putIndexTemplate(putIndexTemplateRequest); - + // Create a data stream CreateDataStreamRequest createDataStreamRequest = new CreateDataStreamRequest.Builder().name(dataStreamName).build(); client.indices().createDataStream(createDataStreamRequest); diff --git a/samples/src/main/java/org/opensearch/client/samples/IndexingBasics.java b/samples/src/main/java/org/opensearch/client/samples/IndexingBasics.java index bba03de80b..db7bfdf3f6 100644 --- a/samples/src/main/java/org/opensearch/client/samples/IndexingBasics.java +++ b/samples/src/main/java/org/opensearch/client/samples/IndexingBasics.java @@ -9,7 +9,6 @@ package org.opensearch.client.samples; import java.util.ArrayList; - import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.opensearch.client.json.JsonData; @@ -47,27 +46,24 @@ public static void main(String[] args) { if (!client.indices().exists(r -> r.index(indexName)).value()) { LOGGER.info("Creating index {}", indexName); - IndexSettings settings = new IndexSettings.Builder() - .numberOfShards("2") - .numberOfReplicas("1") - .build(); - TypeMapping mapping = new TypeMapping.Builder() - .properties("age", new Property.Builder().integer(new IntegerNumberProperty.Builder().build()).build()) - .build(); - CreateIndexRequest createIndexRequest = new CreateIndexRequest.Builder() - .index(indexName) - .settings(settings) - .mappings(mapping) - .build(); + IndexSettings settings = new IndexSettings.Builder().numberOfShards("2").numberOfReplicas("1").build(); + TypeMapping mapping = new TypeMapping.Builder().properties( + "age", + new Property.Builder().integer(new IntegerNumberProperty.Builder().build()).build() + ).build(); + CreateIndexRequest createIndexRequest = new CreateIndexRequest.Builder().index(indexName) + .settings(settings) + .mappings(mapping) + .build(); client.indices().create(createIndexRequest); } LOGGER.info("Indexing documents"); IndexData indexData = new IndexData("Document 1", "Text for document 1"); IndexRequest indexRequest = new IndexRequest.Builder().index(indexName) - .id("1") - .document(indexData) - .build(); + .id("1") + .document(indexData) + .build(); client.index(indexRequest); indexData = new IndexData("Document 2", "Text for document 2"); @@ -84,14 +80,8 @@ public static void main(String[] args) { LOGGER.info("Adding a new mapping to index {}", indexName); PutMappingRequest.Builder mappingsRequestBuilder = new PutMappingRequest.Builder().index(indexName) - .source( - new SourceField.Builder() - .enabled(true) - .build()) - .routing( - new RoutingField.Builder() - .required(false) - .build()) + .source(new SourceField.Builder().enabled(true).build()) + .routing(new RoutingField.Builder().required(false).build()) .dynamic(DynamicMapping.Strict) .meta("key", JsonData.of("key value")) .fieldNames(new FieldNamesField.Builder().enabled(false).build()) @@ -100,7 +90,7 @@ public static void main(String[] args) { .dynamicTemplates(new ArrayList<>()) .numericDetection(false); client.indices().putMapping(mappingsRequestBuilder.build()); - + GetMappingRequest mappingsRequest = new GetMappingRequest.Builder().index(indexName).build(); GetMappingResponse getMappingResponse = client.indices().getMapping(mappingsRequest); LOGGER.info("Mappings {} found for index {}", getMappingResponse.result().get(indexName).mappings(), indexName); diff --git a/samples/src/main/java/org/opensearch/client/samples/PointInTime.java b/samples/src/main/java/org/opensearch/client/samples/PointInTime.java index 55a348ef8c..53e29743c4 100644 --- a/samples/src/main/java/org/opensearch/client/samples/PointInTime.java +++ b/samples/src/main/java/org/opensearch/client/samples/PointInTime.java @@ -41,24 +41,21 @@ public static void main(String[] args) { if (!client.indices().exists(r -> r.index(indexName)).value()) { LOGGER.info("Creating index {}", indexName); - IndexSettings settings = new IndexSettings.Builder() - .numberOfShards("2") - .numberOfReplicas("1") - .build(); - TypeMapping mapping = new TypeMapping.Builder() - .properties("age", new Property.Builder().integer(new IntegerNumberProperty.Builder().build()).build()) - .build(); - CreateIndexRequest createIndexRequest = new CreateIndexRequest.Builder() - .index(indexName) - .settings(settings) - .mappings(mapping) - .build(); + IndexSettings settings = new IndexSettings.Builder().numberOfShards("2").numberOfReplicas("1").build(); + TypeMapping mapping = new TypeMapping.Builder().properties( + "age", + new Property.Builder().integer(new IntegerNumberProperty.Builder().build()).build() + ).build(); + CreateIndexRequest createIndexRequest = new CreateIndexRequest.Builder().index(indexName) + .settings(settings) + .mappings(mapping) + .build(); client.indices().create(createIndexRequest); } - CreatePitRequest createPitRequest = new CreatePitRequest.Builder() - .targetIndexes(Collections.singletonList(indexName)) - .keepAlive(new Time.Builder().time("100m").build()).build(); + CreatePitRequest createPitRequest = new CreatePitRequest.Builder().targetIndexes(Collections.singletonList(indexName)) + .keepAlive(new Time.Builder().time("100m").build()) + .build(); CreatePitResponse createPitResponse = client.createPit(createPitRequest); LOGGER.info("PIT created with id: {}", createPitResponse.pitId()); @@ -66,11 +63,11 @@ public static void main(String[] args) { ListAllPitResponse listAllPitResponse = client.listAllPit(); LOGGER.info("Found {} PITs", listAllPitResponse.pits().size()); - DeletePitRequest deletePitRequest = new DeletePitRequest.Builder() - .pitId(Collections.singletonList(createPitResponse.pitId())).build(); + DeletePitRequest deletePitRequest = new DeletePitRequest.Builder().pitId(Collections.singletonList(createPitResponse.pitId())) + .build(); DeletePitResponse deletePitResponse = client.deletePit(deletePitRequest); LOGGER.info("Deleting PIT: {}", deletePitResponse.pits()); - + LOGGER.info("Deleting index {}", indexName); DeleteIndexRequest deleteIndexRequest = new DeleteIndexRequest.Builder().index(indexName).build(); client.indices().delete(deleteIndexRequest); diff --git a/samples/src/main/java/org/opensearch/client/samples/SampleClient.java b/samples/src/main/java/org/opensearch/client/samples/SampleClient.java index 9b73d9504f..b7b735037e 100644 --- a/samples/src/main/java/org/opensearch/client/samples/SampleClient.java +++ b/samples/src/main/java/org/opensearch/client/samples/SampleClient.java @@ -32,40 +32,29 @@ public static OpenSearchClient create() throws NoSuchAlgorithmException, KeyStor var user = env.getOrDefault("USERNAME", "admin"); var pass = env.getOrDefault("PASSWORD", "admin"); - final var hosts = new HttpHost[]{ - new HttpHost(https ? "https" : "http", hostname, port) - }; + final var hosts = new HttpHost[] { new HttpHost(https ? "https" : "http", hostname, port) }; - final var sslContext = SSLContextBuilder.create() - .loadTrustMaterial(null, (chains, authType) -> true) - .build(); + final var sslContext = SSLContextBuilder.create().loadTrustMaterial(null, (chains, authType) -> true).build(); - final var transport = ApacheHttpClient5TransportBuilder - .builder(hosts) - .setMapper(new JacksonJsonpMapper()) - .setHttpClientConfigCallback(httpClientBuilder -> { - final var credentialsProvider = new BasicCredentialsProvider(); - for (final var host : hosts) { - credentialsProvider.setCredentials( - new AuthScope(host), - new UsernamePasswordCredentials(user, pass.toCharArray())); - } + final var transport = ApacheHttpClient5TransportBuilder.builder(hosts) + .setMapper(new JacksonJsonpMapper()) + .setHttpClientConfigCallback(httpClientBuilder -> { + final var credentialsProvider = new BasicCredentialsProvider(); + for (final var host : hosts) { + credentialsProvider.setCredentials(new AuthScope(host), new UsernamePasswordCredentials(user, pass.toCharArray())); + } - // Disable SSL/TLS verification as our local testing clusters use self-signed certificates - final var tlsStrategy = ClientTlsStrategyBuilder.create() - .setSslContext(sslContext) - .setHostnameVerifier(NoopHostnameVerifier.INSTANCE) - .build(); + // Disable SSL/TLS verification as our local testing clusters use self-signed certificates + final var tlsStrategy = ClientTlsStrategyBuilder.create() + .setSslContext(sslContext) + .setHostnameVerifier(NoopHostnameVerifier.INSTANCE) + .build(); - final var connectionManager = PoolingAsyncClientConnectionManagerBuilder.create() - .setTlsStrategy(tlsStrategy) - .build(); + final var connectionManager = PoolingAsyncClientConnectionManagerBuilder.create().setTlsStrategy(tlsStrategy).build(); - return httpClientBuilder - .setDefaultCredentialsProvider(credentialsProvider) - .setConnectionManager(connectionManager); - }) - .build(); + return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider).setConnectionManager(connectionManager); + }) + .build(); return new OpenSearchClient(transport); } } diff --git a/samples/src/main/java/org/opensearch/client/samples/Search.java b/samples/src/main/java/org/opensearch/client/samples/Search.java index ea41bfc48c..ce357d2942 100644 --- a/samples/src/main/java/org/opensearch/client/samples/Search.java +++ b/samples/src/main/java/org/opensearch/client/samples/Search.java @@ -11,7 +11,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.Map; - import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.opensearch.client.opensearch.OpenSearchClient; @@ -69,9 +68,9 @@ public static void main(String[] args) { LOGGER.info("Indexing documents"); IndexData indexData = new IndexData("Document 1", "Text for document 1"); IndexRequest indexRequest = new IndexRequest.Builder().index(indexName) - .id("1") - .document(indexData) - .build(); + .id("1") + .document(indexData) + .build(); client.index(indexRequest); indexData = new IndexData("Document 2", "Text for document 2"); @@ -86,21 +85,18 @@ public static void main(String[] args) { LOGGER.info("Found {} with score {}", hit.source(), hit.score()); } - SearchRequest searchRequest = new SearchRequest.Builder().query(q -> q.match(m -> m.field("text") - .query(FieldValue.of("Text for document 2")))) - .build(); + SearchRequest searchRequest = new SearchRequest.Builder().query( + q -> q.match(m -> m.field("text").query(FieldValue.of("Text for document 2"))) + ).build(); searchResponse = client.search(searchRequest, IndexData.class); for (var hit : searchResponse.hits().hits()) { LOGGER.info("Found {} with score {}", hit.source(), hit.score()); } - searchRequest = new SearchRequest.Builder().query(q -> q.match(m -> m.field("title") - .query(FieldValue.of("Document 1")))) - .aggregations("titles", - new Aggregation.Builder().terms(t -> t.field("title.keyword")) - .build()) - .build(); + searchRequest = new SearchRequest.Builder().query(q -> q.match(m -> m.field("title").query(FieldValue.of("Document 1")))) + .aggregations("titles", new Aggregation.Builder().terms(t -> t.field("title.keyword")).build()) + .build(); searchResponse = client.search(searchRequest, IndexData.class); for (Map.Entry entry : searchResponse.aggregations().entrySet()) { @@ -123,53 +119,28 @@ public static void main(String[] args) { public static void searchWithCompletionSuggester() { try { var index = "completion-suggester"; - Property intValueProp = new Property.Builder() - .long_(v -> v) - .build(); - Property msgCompletionProp = new Property.Builder() - .completion(c -> c) - .build(); - client.indices().create(c -> c - .index(index) - .mappings(m -> m - .properties("intValue", intValueProp) - .properties("msg", msgCompletionProp))); + Property intValueProp = new Property.Builder().long_(v -> v).build(); + Property msgCompletionProp = new Property.Builder().completion(c -> c).build(); + client.indices() + .create(c -> c.index(index).mappings(m -> m.properties("intValue", intValueProp).properties("msg", msgCompletionProp))); AppData appData = new AppData(); appData.setIntValue(1337); appData.setMsg("foo"); - client.index(b -> b - .index(index) - .id("1") - .document(appData) - .refresh(Refresh.True)); + client.index(b -> b.index(index).id("1").document(appData).refresh(Refresh.True)); appData.setIntValue(1338); appData.setMsg("foobar"); - client.index(b -> b - .index(index) - .id("2") - .document(appData) - .refresh(Refresh.True)); + client.index(b -> b.index(index).id("2").document(appData).refresh(Refresh.True)); String suggesterName = "msgSuggester"; - CompletionSuggester completionSuggester = FieldSuggesterBuilders.completion() - .field("msg") - .size(1) - .build(); - FieldSuggester fieldSuggester = new FieldSuggester.Builder().prefix("foo") - .completion(completionSuggester) - .build(); - Suggester suggester = new Suggester.Builder() - .suggesters(Collections.singletonMap(suggesterName, fieldSuggester)) - .build(); - SearchRequest searchRequest = new SearchRequest.Builder() - .index(index) - .suggest(suggester) - .build(); + CompletionSuggester completionSuggester = FieldSuggesterBuilders.completion().field("msg").size(1).build(); + FieldSuggester fieldSuggester = new FieldSuggester.Builder().prefix("foo").completion(completionSuggester).build(); + Suggester suggester = new Suggester.Builder().suggesters(Collections.singletonMap(suggesterName, fieldSuggester)).build(); + SearchRequest searchRequest = new SearchRequest.Builder().index(index).suggest(suggester).build(); SearchResponse searchResponse = client.search(searchRequest, AppData.class); LOGGER.info("Suggester response size {}", searchResponse.suggest().get(suggesterName).size()); @@ -183,46 +154,27 @@ public static void searchWithCompletionSuggester() { public static void searchWithTermSuggester() { try { String index = "term-suggester"; - + // term suggester does not require a special mapping - client.indices().create(c -> c - .index(index)); + client.indices().create(c -> c.index(index)); AppData appData = new AppData(); appData.setIntValue(1337); appData.setMsg("foo"); - client.index(b -> b - .index(index) - .id("1") - .document(appData) - .refresh(Refresh.True)); + client.index(b -> b.index(index).id("1").document(appData).refresh(Refresh.True)); appData.setIntValue(1338); appData.setMsg("foobar"); - client.index(b -> b - .index(index) - .id("2") - .document(appData) - .refresh(Refresh.True)); + client.index(b -> b.index(index).id("2").document(appData).refresh(Refresh.True)); String suggesterName = "msgSuggester"; - TermSuggester termSuggester = FieldSuggesterBuilders.term() - .field("msg") - .size(1) - .build(); - FieldSuggester fieldSuggester = new FieldSuggester.Builder().text("fool") - .term(termSuggester) - .build(); - Suggester suggester = new Suggester.Builder() - .suggesters(Collections.singletonMap(suggesterName, fieldSuggester)) - .build(); - SearchRequest searchRequest = new SearchRequest.Builder() - .index(index) - .suggest(suggester) - .build(); + TermSuggester termSuggester = FieldSuggesterBuilders.term().field("msg").size(1).build(); + FieldSuggester fieldSuggester = new FieldSuggester.Builder().text("fool").term(termSuggester).build(); + Suggester suggester = new Suggester.Builder().suggesters(Collections.singletonMap(suggesterName, fieldSuggester)).build(); + SearchRequest searchRequest = new SearchRequest.Builder().index(index).suggest(suggester).build(); SearchResponse searchResponse = client.search(searchRequest, AppData.class); LOGGER.info("Suggester response size {}", searchResponse.suggest().get(suggesterName).size()); @@ -237,72 +189,51 @@ public static void searchWithPhraseSuggester() { try { String index = "test-phrase-suggester"; - ShingleTokenFilter shingleTokenFilter = new ShingleTokenFilter.Builder().minShingleSize("2") - .maxShingleSize("3") - .build(); + ShingleTokenFilter shingleTokenFilter = new ShingleTokenFilter.Builder().minShingleSize("2").maxShingleSize("3").build(); - Analyzer analyzer = new Analyzer.Builder() - .custom(new CustomAnalyzer.Builder().tokenizer("standard") - .filter(Arrays.asList("lowercase", "shingle")).build()) - .build(); + Analyzer analyzer = new Analyzer.Builder().custom( + new CustomAnalyzer.Builder().tokenizer("standard").filter(Arrays.asList("lowercase", "shingle")).build() + ).build(); - TokenFilter tokenFilter = new TokenFilter.Builder() - .definition(new TokenFilterDefinition.Builder() - .shingle(shingleTokenFilter).build()) - .build(); + TokenFilter tokenFilter = new TokenFilter.Builder().definition( + new TokenFilterDefinition.Builder().shingle(shingleTokenFilter).build() + ).build(); - IndexSettingsAnalysis indexSettingsAnalysis = new IndexSettingsAnalysis.Builder() - .analyzer("trigram", analyzer) - .filter("shingle", tokenFilter) - .build(); + IndexSettingsAnalysis indexSettingsAnalysis = new IndexSettingsAnalysis.Builder().analyzer("trigram", analyzer) + .filter("shingle", tokenFilter) + .build(); IndexSettings settings = new IndexSettings.Builder().analysis(indexSettingsAnalysis).build(); - TypeMapping mapping = new TypeMapping.Builder().properties("msg", new Property.Builder() - .text(new TextProperty.Builder().fields("trigram", new Property.Builder() - .text(new TextProperty.Builder().analyzer("trigram").build()) - .build()).build()) - .build()).build(); + TypeMapping mapping = new TypeMapping.Builder().properties( + "msg", + new Property.Builder().text( + new TextProperty.Builder().fields( + "trigram", + new Property.Builder().text(new TextProperty.Builder().analyzer("trigram").build()).build() + ).build() + ).build() + ).build(); - client.indices().create(c -> c - .index(index) - .settings(settings) - .mappings(mapping)); + client.indices().create(c -> c.index(index).settings(settings).mappings(mapping)); AppData appData = new AppData(); appData.setIntValue(1337); appData.setMsg("Design Patterns"); - client.index(b -> b - .index(index) - .id("1") - .document(appData) - .refresh(Refresh.True)); + client.index(b -> b.index(index).id("1").document(appData).refresh(Refresh.True)); appData.setIntValue(1338); appData.setMsg("Software Architecture Patterns Explained"); - client.index(b -> b - .index(index) - .id("2") - .document(appData) - .refresh(Refresh.True)); + client.index(b -> b.index(index).id("2").document(appData).refresh(Refresh.True)); String suggesterName = "msgSuggester"; - PhraseSuggester phraseSuggester = FieldSuggesterBuilders.phrase() - .field("msg.trigram") - .build(); - FieldSuggester fieldSuggester = new FieldSuggester.Builder().text("design paterns") - .phrase(phraseSuggester) - .build(); - Suggester suggester = new Suggester.Builder() - .suggesters(Collections.singletonMap(suggesterName, fieldSuggester)) - .build(); - SearchRequest searchRequest = new SearchRequest.Builder() - .index(index) - .suggest(suggester) - .build(); + PhraseSuggester phraseSuggester = FieldSuggesterBuilders.phrase().field("msg.trigram").build(); + FieldSuggester fieldSuggester = new FieldSuggester.Builder().text("design paterns").phrase(phraseSuggester).build(); + Suggester suggester = new Suggester.Builder().suggesters(Collections.singletonMap(suggesterName, fieldSuggester)).build(); + SearchRequest searchRequest = new SearchRequest.Builder().index(index).suggest(suggester).build(); SearchResponse searchResponse = client.search(searchRequest, AppData.class); LOGGER.info("Suggester response size {}", searchResponse.suggest().get(suggesterName).size()); diff --git a/samples/src/main/java/org/opensearch/client/samples/knn/KnnBasics.java b/samples/src/main/java/org/opensearch/client/samples/knn/KnnBasics.java index 1ac93a2723..c4d89fee1c 100644 --- a/samples/src/main/java/org/opensearch/client/samples/knn/KnnBasics.java +++ b/samples/src/main/java/org/opensearch/client/samples/knn/KnnBasics.java @@ -33,12 +33,12 @@ public static void main(String[] args) { if (!client.indices().exists(r -> r.index(indexName)).value()) { LOGGER.info("Creating index {}", indexName); - client.indices().create(r -> r - .index(indexName) - .settings(s -> s.knn(true)) - .mappings(m -> m - .properties("values", p -> p - .knnVector(k -> k.dimension(dimensions))))); + client.indices() + .create( + r -> r.index(indexName) + .settings(s -> s.knn(true)) + .mappings(m -> m.properties("values", p -> p.knnVector(k -> k.dimension(dimensions)))) + ); } final var nVectors = 10; @@ -46,11 +46,7 @@ public static void main(String[] args) { for (var i = 0; i < nVectors; ++i) { var id = Integer.toString(i); var doc = Doc.rand(dimensions); - bulkRequest.operations(b -> b - .index(o -> o - .index(indexName) - .id(id) - .document(doc))); + bulkRequest.operations(b -> b.index(o -> o.index(indexName).id(id).document(doc))); } LOGGER.info("Indexing {} vectors", nVectors); @@ -62,14 +58,10 @@ public static void main(String[] args) { final var searchVector = RandUtil.rand2SfArray(dimensions); LOGGER.info("Searching for vector {}", searchVector); - var searchResponse = client.search(s -> s - .index(indexName) - .query(q -> q - .knn(k -> k - .field("values") - .vector(searchVector) - .k(3))), - Doc.class); + var searchResponse = client.search( + s -> s.index(indexName).query(q -> q.knn(k -> k.field("values").vector(searchVector).k(3))), + Doc.class + ); for (var hit : searchResponse.hits().hits()) { LOGGER.info("Found {} with score {}", hit.source(), hit.score()); @@ -105,9 +97,7 @@ public void setValues(float[] values) { @Override public String toString() { - return "{" + - "values=" + Arrays.toString(values) + - '}'; + return "{" + "values=" + Arrays.toString(values) + '}'; } } } diff --git a/samples/src/main/java/org/opensearch/client/samples/knn/KnnBooleanFilter.java b/samples/src/main/java/org/opensearch/client/samples/knn/KnnBooleanFilter.java index 47f637a8d0..b0cff0cc6a 100644 --- a/samples/src/main/java/org/opensearch/client/samples/knn/KnnBooleanFilter.java +++ b/samples/src/main/java/org/opensearch/client/samples/knn/KnnBooleanFilter.java @@ -33,25 +33,21 @@ public static void main(String[] args) { if (!client.indices().exists(r -> r.index(indexName)).value()) { LOGGER.info("Creating index {}", indexName); - client.indices().create(r -> r - .index(indexName) - .settings(s -> s.knn(true)) - .mappings(m -> m - .properties("values", p -> p - .knnVector(k -> k.dimension(dimensions))))); + client.indices() + .create( + r -> r.index(indexName) + .settings(s -> s.knn(true)) + .mappings(m -> m.properties("values", p -> p.knnVector(k -> k.dimension(dimensions)))) + ); } final var nVectors = 3000; - final var genres = new String[] {"fiction", "drama", "romance"}; + final var genres = new String[] { "fiction", "drama", "romance" }; var bulkRequest = new BulkRequest.Builder(); for (var i = 0; i < nVectors; ++i) { var id = Integer.toString(i); var doc = Doc.rand(dimensions, genres); - bulkRequest.operations(b -> b - .index(o -> o - .index(indexName) - .id(id) - .document(doc))); + bulkRequest.operations(b -> b.index(o -> o.index(indexName).id(id).document(doc))); } LOGGER.info("Indexing {} vectors", nVectors); @@ -64,22 +60,19 @@ public static void main(String[] args) { final var searchVector = RandUtil.rand2SfArray(dimensions); LOGGER.info("Searching for vector {} with the '{}' genre", searchVector, searchGenre); - var searchResponse = client.search(s -> s - .index(indexName) - .query(q -> q - .bool(b -> b - .filter(f -> f - .bool(b2 -> b2 - .must(m -> m - .term(t -> t - .field("metadata.genre") - .value(v -> v.stringValue(searchGenre)))))) - .must(m -> m - .knn(k -> k - .field("values") - .vector(searchVector) - .k(5))))), - Doc.class); + var searchResponse = client.search( + s -> s.index(indexName) + .query( + q -> q.bool( + b -> b.filter( + f -> f.bool( + b2 -> b2.must(m -> m.term(t -> t.field("metadata.genre").value(v -> v.stringValue(searchGenre)))) + ) + ).must(m -> m.knn(k -> k.field("values").vector(searchVector).k(5))) + ) + ), + Doc.class + ); for (var hit : searchResponse.hits().hits()) { LOGGER.info("Found {} with score {}", hit.source(), hit.score()); @@ -125,10 +118,7 @@ public void setMetadata(Metadata metadata) { @Override public String toString() { - return "{" + - "values=" + Arrays.toString(values) + - ", metadata=" + metadata + - '}'; + return "{" + "values=" + Arrays.toString(values) + ", metadata=" + metadata + '}'; } } @@ -151,9 +141,7 @@ public void setGenre(String genre) { @Override public String toString() { - return "{" + - "genre=" + genre + - '}'; + return "{" + "genre=" + genre + '}'; } } } diff --git a/samples/src/main/java/org/opensearch/client/samples/knn/KnnEfficientFilter.java b/samples/src/main/java/org/opensearch/client/samples/knn/KnnEfficientFilter.java index 6f512a0f1d..e24de64826 100644 --- a/samples/src/main/java/org/opensearch/client/samples/knn/KnnEfficientFilter.java +++ b/samples/src/main/java/org/opensearch/client/samples/knn/KnnEfficientFilter.java @@ -34,49 +34,47 @@ public static void main(String[] args) { if (!client.indices().exists(r -> r.index(indexName)).value()) { LOGGER.info("Creating index {}", indexName); - client.indices().create(r -> r - .index(indexName) - .settings(s -> s - .knn(true) - .knnAlgoParamEfSearch(100) - .numberOfShards("1") - .numberOfReplicas("0")) - .mappings(m -> m - .properties("location", p -> p - .knnVector(k -> k - .dimension(2) - .method(v -> v - .name("hnsw") - .spaceType("l2") - .engine("lucene") - .parameters("ef_construction", JsonData.of(100)) - .parameters("m", JsonData.of(16))))))); + client.indices() + .create( + r -> r.index(indexName) + .settings(s -> s.knn(true).knnAlgoParamEfSearch(100).numberOfShards("1").numberOfReplicas("0")) + .mappings( + m -> m.properties( + "location", + p -> p.knnVector( + k -> k.dimension(2) + .method( + v -> v.name("hnsw") + .spaceType("l2") + .engine("lucene") + .parameters("ef_construction", JsonData.of(100)) + .parameters("m", JsonData.of(16)) + ) + ) + ) + ) + ); } final var hotels = new Hotel[] { - new Hotel(5.2f, 4.f, true, 5), - new Hotel(5.2f, 3.9f, false, 4), - new Hotel(4.9f, 3.4f, true, 9), - new Hotel(4.2f, 4.6f, false, 6), - new Hotel(3.3f, 4.5f, true, 8), - new Hotel(6.4f, 3.4f, true, 9), - new Hotel(4.2f, 6.2f, true, 5), - new Hotel(2.4f, 4.0f, true, 8), - new Hotel(1.4f, 3.2f, false, 5), - new Hotel(7.0f, 9.9f, true, 9), - new Hotel(3.0f, 2.3f, false, 6), - new Hotel(5.0f, 1.0f, true, 3), - }; + new Hotel(5.2f, 4.f, true, 5), + new Hotel(5.2f, 3.9f, false, 4), + new Hotel(4.9f, 3.4f, true, 9), + new Hotel(4.2f, 4.6f, false, 6), + new Hotel(3.3f, 4.5f, true, 8), + new Hotel(6.4f, 3.4f, true, 9), + new Hotel(4.2f, 6.2f, true, 5), + new Hotel(2.4f, 4.0f, true, 8), + new Hotel(1.4f, 3.2f, false, 5), + new Hotel(7.0f, 9.9f, true, 9), + new Hotel(3.0f, 2.3f, false, 6), + new Hotel(5.0f, 1.0f, true, 3), }; var bulkRequest = new BulkRequest.Builder(); for (var i = 0; i < hotels.length; ++i) { final var id = Integer.toString(i + 1); final var hotel = hotels[i]; LOGGER.info("Indexing hotel {} with id {}", hotel, id); - bulkRequest.operations(b -> b - .index(o -> o - .index(indexName) - .id(id) - .document(hotel))); + bulkRequest.operations(b -> b.index(o -> o.index(indexName).id(id).document(hotel))); } LOGGER.info("Indexing {} documents", hotels.length); @@ -85,34 +83,43 @@ public static void main(String[] args) { LOGGER.info("Waiting for indexing to finish"); client.indices().refresh(i -> i.index(indexName)); - final var searchLocation = new float[]{ 5.0f, 4.0f }; + final var searchLocation = new float[] { 5.0f, 4.0f }; final var searchRatingMin = 8; final var searchRatingMax = 10; final var searchParking = true; LOGGER.info( - "Searching for hotel near {} with rating >={},<={} and parking={}", - searchLocation, searchRatingMin, searchRatingMax, searchParking); - - var searchResponse = client.search(s -> s - .index(indexName) + "Searching for hotel near {} with rating >={},<={} and parking={}", + searchLocation, + searchRatingMin, + searchRatingMax, + searchParking + ); + + var searchResponse = client.search( + s -> s.index(indexName) .size(3) - .query(q -> q - .knn(k -> k - .field("location") - .vector(searchLocation) - .k(3) - .filter(Query.of(f -> f - .bool(b -> b - .must(m -> m - .range(r -> r - .field("rating") - .gte(JsonData.of(searchRatingMin)) - .lte(JsonData.of(searchRatingMax)))) - .must(m -> m - .term(t -> t - .field("parking") - .value(FieldValue.of(searchParking))))))))), - Hotel.class); + .query( + q -> q.knn( + k -> k.field("location") + .vector(searchLocation) + .k(3) + .filter( + Query.of( + f -> f.bool( + b -> b.must( + m -> m.range( + r -> r.field("rating") + .gte(JsonData.of(searchRatingMin)) + .lte(JsonData.of(searchRatingMax)) + ) + ).must(m -> m.term(t -> t.field("parking").value(FieldValue.of(searchParking)))) + ) + ) + ) + ) + ), + Hotel.class + ); for (var hit : searchResponse.hits().hits()) { LOGGER.info("Found {} with score {}", hit.source(), hit.score()); @@ -133,7 +140,7 @@ public static class Hotel { public Hotel() {} public Hotel(float locX, float locY, boolean parking, int rating) { - this.location = new float[] {locX, locY}; + this.location = new float[] { locX, locY }; this.parking = parking; this.rating = rating; } @@ -164,11 +171,7 @@ public void setRating(int rating) { @Override public String toString() { - return "{" + - "location=" + Arrays.toString(location) + - ", parking=" + parking + - ", rating=" + rating + - '}'; + return "{" + "location=" + Arrays.toString(location) + ", parking=" + parking + ", rating=" + rating + '}'; } } } diff --git a/samples/src/main/java/org/opensearch/client/samples/knn/KnnPainlessScript.java b/samples/src/main/java/org/opensearch/client/samples/knn/KnnPainlessScript.java index 3ff803138a..2a60355c7b 100644 --- a/samples/src/main/java/org/opensearch/client/samples/knn/KnnPainlessScript.java +++ b/samples/src/main/java/org/opensearch/client/samples/knn/KnnPainlessScript.java @@ -34,12 +34,12 @@ public static void main(String[] args) { if (!client.indices().exists(r -> r.index(indexName)).value()) { LOGGER.info("Creating index {}", indexName); - client.indices().create(r -> r - .index(indexName) - .settings(s -> s.knn(true)) - .mappings(m -> m - .properties("values", p -> p - .knnVector(k -> k.dimension(dimensions))))); + client.indices() + .create( + r -> r.index(indexName) + .settings(s -> s.knn(true)) + .mappings(m -> m.properties("values", p -> p.knnVector(k -> k.dimension(dimensions)))) + ); } final var nVectors = 10; @@ -47,11 +47,7 @@ public static void main(String[] args) { for (var i = 0; i < nVectors; ++i) { var id = Integer.toString(i); var doc = Doc.rand(dimensions); - bulkRequest.operations(b -> b - .index(o -> o - .index(indexName) - .id(id) - .document(doc))); + bulkRequest.operations(b -> b.index(o -> o.index(indexName).id(id).document(doc))); } LOGGER.info("Indexing {} vectors", nVectors); @@ -63,17 +59,22 @@ public static void main(String[] args) { final var searchVector = RandUtil.rand2SfArray(dimensions); LOGGER.info("Searching for vector {}", searchVector); - var searchResponse = client.search(s -> s - .index(indexName) - .query(q -> q - .scriptScore(ss -> ss - .query(qq -> qq.matchAll(m -> m)) - .script(sss -> sss - .inline(i -> i - .source("1.0 + cosineSimilarity(params.query_value, doc[params.field])") - .params("field", JsonData.of("values")) - .params("query_value", JsonData.of(searchVector)))))), - Doc.class); + var searchResponse = client.search( + s -> s.index(indexName) + .query( + q -> q.scriptScore( + ss -> ss.query(qq -> qq.matchAll(m -> m)) + .script( + sss -> sss.inline( + i -> i.source("1.0 + cosineSimilarity(params.query_value, doc[params.field])") + .params("field", JsonData.of("values")) + .params("query_value", JsonData.of(searchVector)) + ) + ) + ) + ), + Doc.class + ); for (var hit : searchResponse.hits().hits()) { LOGGER.info("Found {} with score {}", hit.source(), hit.score()); @@ -109,9 +110,7 @@ public void setValues(float[] values) { @Override public String toString() { - return "{" + - "values=" + Arrays.toString(values) + - '}'; + return "{" + "values=" + Arrays.toString(values) + '}'; } } } diff --git a/samples/src/main/java/org/opensearch/client/samples/knn/KnnScriptScore.java b/samples/src/main/java/org/opensearch/client/samples/knn/KnnScriptScore.java index 0ee46e4fc0..eb0ccec60f 100644 --- a/samples/src/main/java/org/opensearch/client/samples/knn/KnnScriptScore.java +++ b/samples/src/main/java/org/opensearch/client/samples/knn/KnnScriptScore.java @@ -34,12 +34,12 @@ public static void main(String[] args) { if (!client.indices().exists(r -> r.index(indexName)).value()) { LOGGER.info("Creating index {}", indexName); - client.indices().create(r -> r - .index(indexName) - .settings(s -> s.knn(true)) - .mappings(m -> m - .properties("values", p -> p - .knnVector(k -> k.dimension(dimensions))))); + client.indices() + .create( + r -> r.index(indexName) + .settings(s -> s.knn(true)) + .mappings(m -> m.properties("values", p -> p.knnVector(k -> k.dimension(dimensions)))) + ); } final var nVectors = 10; @@ -47,11 +47,7 @@ public static void main(String[] args) { for (var i = 0; i < nVectors; ++i) { var id = Integer.toString(i); var doc = Doc.rand(dimensions); - bulkRequest.operations(b -> b - .index(o -> o - .index(indexName) - .id(id) - .document(doc))); + bulkRequest.operations(b -> b.index(o -> o.index(indexName).id(id).document(doc))); } LOGGER.info("Indexing {} vectors", nVectors); @@ -63,19 +59,24 @@ public static void main(String[] args) { final var searchVector = RandUtil.rand2SfArray(dimensions); LOGGER.info("Searching for vector {}", searchVector); - var searchResponse = client.search(s -> s - .index(indexName) - .query(q -> q - .scriptScore(ss -> ss - .query(qq -> qq.matchAll(m -> m)) - .script(sss -> sss - .inline(i -> i - .source("knn_score") - .lang("knn") - .params("field", JsonData.of("values")) - .params("query_value", JsonData.of(searchVector)) - .params("space_type", JsonData.of("cosinesimil")))))), - Doc.class); + var searchResponse = client.search( + s -> s.index(indexName) + .query( + q -> q.scriptScore( + ss -> ss.query(qq -> qq.matchAll(m -> m)) + .script( + sss -> sss.inline( + i -> i.source("knn_score") + .lang("knn") + .params("field", JsonData.of("values")) + .params("query_value", JsonData.of(searchVector)) + .params("space_type", JsonData.of("cosinesimil")) + ) + ) + ) + ), + Doc.class + ); for (var hit : searchResponse.hits().hits()) { LOGGER.info("Found {} with score {}", hit.source(), hit.score()); @@ -111,9 +112,7 @@ public void setValues(float[] values) { @Override public String toString() { - return "{" + - "values=" + Arrays.toString(values) + - '}'; + return "{" + "values=" + Arrays.toString(values) + '}'; } } } diff --git a/samples/src/main/java/org/opensearch/client/samples/util/IndexData.java b/samples/src/main/java/org/opensearch/client/samples/util/IndexData.java index 759f03be8f..211e483f23 100644 --- a/samples/src/main/java/org/opensearch/client/samples/util/IndexData.java +++ b/samples/src/main/java/org/opensearch/client/samples/util/IndexData.java @@ -12,8 +12,7 @@ public class IndexData { private String title; private String text; - public IndexData() { - } + public IndexData() {} public IndexData(String title, String text) { this.title = title; diff --git a/samples/src/main/java/org/opensearch/client/samples/util/RandUtil.java b/samples/src/main/java/org/opensearch/client/samples/util/RandUtil.java index fbc2249621..b27731da84 100644 --- a/samples/src/main/java/org/opensearch/client/samples/util/RandUtil.java +++ b/samples/src/main/java/org/opensearch/client/samples/util/RandUtil.java @@ -18,6 +18,6 @@ public static float[] rand2SfArray(int n) { } public static T choice(T[] arr) { - return arr[(int)Math.floor(Math.random() * arr.length)]; + return arr[(int) Math.floor(Math.random() * arr.length)]; } }