Skip to content

Commit 734779f

Browse files
authored
Merge pull request #324 from eclipse-jnosql/update-elasticsearch-driver-version
Update elasticsearch driver version
2 parents d26b528 + 3158e21 commit 734779f

File tree

6 files changed

+65
-22
lines changed

6 files changed

+65
-22
lines changed

CHANGELOG.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ and this project adheres to https://semver.org/spec/v2.0.0.html[Semantic Version
88

99
== [Unreleased]
1010

11+
=== Changed
12+
13+
- Update Elasticsearch driver to 8.17.4
14+
1115
=== Fixed
1216

1317
- Fixes delete all at CouchDB

jnosql-elasticsearch/pom.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@
2828
<description>The Eclipse JNoSQL layer to Elasticsearch</description>
2929

3030
<properties>
31-
<elasticsearch-java.version>8.14.3</elasticsearch-java.version>
32-
31+
<elasticsearch-java.version>8.17.4</elasticsearch-java.version>
3332
</properties>
3433
<dependencies>
3534
<dependency>

jnosql-elasticsearch/src/main/java/org/eclipse/jnosql/databases/elasticsearch/communication/QueryConverter.java

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -114,60 +114,65 @@ private static IndexMappingRecord getIndexMappingRecord(ElasticsearchClient clie
114114

115115
private static Query.Builder getCondition(IndexMappingRecord indexMappingRecord, CriteriaCondition condition) {
116116
Element document = condition.element();
117-
117+
String fieldName = document.name();
118+
JsonData value = JsonData.of(document.value().get());
118119
switch (condition.condition()) {
119120
case EQUALS:
120-
if (supportTermQuery(indexMappingRecord, document.name())) {
121+
if (supportTermQuery(indexMappingRecord, fieldName)) {
121122
return (Query.Builder) new Query.Builder()
122123
.term(TermQuery.of(tq -> tq
123-
.field(document.name())
124+
.field(fieldName)
124125
.value(v -> v
125-
.anyValue(JsonData.of(document.value().get())))));
126+
.anyValue(value))));
126127
}
127128
return (Query.Builder) new Query.Builder()
128129
.match(MatchQuery.of(tq -> tq
129-
.field(document.name())
130+
.field(fieldName)
130131
.query(v -> v
131-
.anyValue(JsonData.of(document.value().get())))));
132+
.anyValue(value))));
132133
case LESSER_THAN:
133134
return (Query.Builder) new Query.Builder()
134135
.range(RangeQuery.of(rq -> rq
135-
.field(document.name())
136-
.lt(JsonData.of(document.value().get()))));
136+
.untyped(u -> u
137+
.field(fieldName)
138+
.lt(value))));
137139
case LESSER_EQUALS_THAN:
138140
return (Query.Builder) new Query.Builder()
139141
.range(RangeQuery.of(rq -> rq
140-
.field(document.name())
141-
.lte(JsonData.of(document.value().get()))));
142+
.untyped(u -> u
143+
.field(fieldName)
144+
.lte(value))));
142145
case GREATER_THAN:
143146
return (Query.Builder) new Query.Builder()
144147
.range(RangeQuery.of(rq -> rq
145-
.field(document.name())
146-
.gt(JsonData.of(document.value().get()))));
148+
.untyped(u -> u
149+
.field(fieldName)
150+
.gt(value))));
147151
case GREATER_EQUALS_THAN:
148152
return (Query.Builder) new Query.Builder()
149153
.range(RangeQuery.of(rq -> rq
150-
.field(document.name())
151-
.gte(JsonData.of(document.value().get()))));
154+
.untyped(u -> u
155+
.field(fieldName)
156+
.gte(value))));
152157
case LIKE:
153158
return (Query.Builder) new Query.Builder()
154159
.queryString(QueryStringQuery.of(rq -> rq
155160
.query(document.value().get(String.class))
156161
.allowLeadingWildcard(true)
157-
.fields(document.name())));
162+
.fields(fieldName)));
158163
case IN:
159164
return (Query.Builder) ValueUtil.convertToList(document.value())
160165
.stream()
161166
.map(val -> {
162-
if (supportTermQuery(indexMappingRecord, document.name())) {
167+
if (supportTermQuery(indexMappingRecord, fieldName)) {
163168
return new Query.Builder()
164169
.term(TermQuery.of(tq -> tq
165-
.field(document.name())
170+
.field(fieldName)
166171
.value(v -> v.anyValue(JsonData.of(val)))));
167172
}
168173
return new Query.Builder()
169174
.match(MatchQuery.of(tq -> tq
170-
.field(document.name())
175+
.field(fieldName)
171176
.query(v -> v.anyValue(JsonData.of(val)))));
172177
})
173178
.reduce((d1, d2) -> new Query.Builder()

jnosql-elasticsearch/src/test/java/org/eclipse/jnosql/databases/elasticsearch/communication/DocumentDatabase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public enum DocumentDatabase implements Supplier<ElasticsearchDocumentManagerFac
4343
INSTANCE;
4444

4545
private final GenericContainer es =
46-
new GenericContainer("docker.elastic.co/elasticsearch/elasticsearch:8.5.0")
46+
new GenericContainer("docker.io/elastic/elasticsearch:8.15.0")
4747
.withReuse(true)
4848
.withExposedPorts(9200, 9300)
4949
.withEnv("discovery.type", "single-node")

jnosql-elasticsearch/src/test/java/org/eclipse/jnosql/databases/elasticsearch/integration/Library.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@
2626
@Repository
2727
public interface Library extends CrudRepository<Magazine, String> {
2828

29-
@Query("select * from Book where author.name = @name")
29+
@Query("where author.name = :name")
3030
Stream<Magazine> findByAuthorName(@Param("name") String name);
3131

3232
Stream<Magazine> findByTitleLike(String title);
3333

34+
Stream<Magazine> findByEditionGreaterThanEqual(int edition);
3435
}

jnosql-elasticsearch/src/test/java/org/eclipse/jnosql/databases/elasticsearch/integration/RepositoryIntegrationTest.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,5 +214,39 @@ public void shouldFindByTitleLike() {
214214
.containsAll(allMagazines));
215215
}
216216

217+
@Test
218+
public void shouldFindByEditionBetween() {
219+
Author joshuaBloch = new Author("Joshua Bloch");
220+
var magazine1 = new Magazine(randomUUID().toString(), "Effective Java", 1, joshuaBloch);
221+
var magazine2 = magazine1.newEdition();
222+
var magazine3 = magazine2.newEdition();
223+
var magazine4 = magazine3.newEdition();
224+
var magazine5 = magazine4.newEdition();
225+
var magazine6 = magazine5.newEdition();
226+
var magazine7 = magazine6.newEdition();
227+
228+
List<Magazine> allMagazines = List.of(
229+
magazine1,
230+
magazine2,
231+
magazine3,
232+
magazine4,
233+
magazine5,
234+
magazine6,
235+
magazine7);
236+
237+
library.saveAll(allMagazines);
238+
239+
List<Magazine> magazinesGreaterThanEquals = allMagazines
240+
.stream()
241+
.dropWhile(m -> magazine3.edition() > m.edition())
242+
.toList();
243+
244+
await().until(() ->
245+
!library.findByEditionGreaterThanEqual(magazine3.edition()).toList().isEmpty());
246+
247+
var magazines = library.findByEditionGreaterThanEqual(magazine3.edition()).toList();
248+
assertThat(magazines)
249+
.containsAll(magazinesGreaterThanEquals);
250+
}
217251

218252
}

0 commit comments

Comments
 (0)