Skip to content

Commit 19bc738

Browse files
committed
Avoid deprecated from and to parameters for range queries.
The “from” and “to” parameters for range queries were deprecated in Elasticsearch 0.90.4, and more than ten years later, they were finally removed in Elasticsearch 9.x. Therefore, the existing code did not work any longer when using modern versions of Elasticsearch. As a side effect, using the “gte” and “lte” parameters simplifiese the code, because we can now simply tell Elasticsearch that the values represent seconds since epoch instead of having to convert to milliseconds in the code. Fixes #3632.
1 parent 365709a commit 19bc738

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

services/alarm-logger/src/main/java/org/phoebus/alarm/logging/rest/AlarmLogSearchUtil.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import co.elastic.clients.elasticsearch._types.query_dsl.WildcardQuery;
1212
import co.elastic.clients.elasticsearch.core.SearchRequest;
1313
import co.elastic.clients.elasticsearch.core.SearchResponse;
14+
import co.elastic.clients.json.JsonData;
1415
import com.fasterxml.jackson.core.JsonProcessingException;
1516
import com.fasterxml.jackson.databind.JsonNode;
1617
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -237,8 +238,9 @@ public static List<AlarmLogMessage> search(ElasticsearchClient client,
237238
Query.of(q -> q
238239
.range(RangeQuery.of(r -> r
239240
.field("message_time")
240-
.from(formatter.format(finalFromInstant))
241-
.to(formatter.format(finalToInstant))
241+
.gte(JsonData.of(finalFromInstant.toEpochMilli()))
242+
.lte(JsonData.of(finalToInstant.toEpochMilli()))
243+
.format("epoch_millis")
242244
)
243245
)
244246
)

services/save-and-restore/src/main/java/org/phoebus/service/saveandrestore/search/SearchUtil.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import co.elastic.clients.elasticsearch._types.query_dsl.RangeQuery;
1717
import co.elastic.clients.elasticsearch._types.query_dsl.WildcardQuery;
1818
import co.elastic.clients.elasticsearch.core.SearchRequest;
19+
import co.elastic.clients.json.JsonData;
1920
import org.phoebus.applications.saveandrestore.model.Tag;
2021
import org.slf4j.Logger;
2122
import org.slf4j.LoggerFactory;
@@ -240,8 +241,9 @@ public SearchRequest buildSearchRequest(MultiValueMap<String, String> searchPara
240241
DisMaxQuery.Builder temporalQuery = new DisMaxQuery.Builder();
241242
RangeQuery.Builder rangeQuery = new RangeQuery.Builder();
242243
// Add a query based on the created time
243-
rangeQuery.field("node.lastModified").from(Long.toString(1000 * start.toEpochSecond()))
244-
.to(Long.toString(1000 * end.toEpochSecond()));
244+
rangeQuery.field("node.lastModified").gte(JsonData.of(start.toEpochSecond()))
245+
.lte(JsonData.of(end.toEpochSecond()))
246+
.format("epoch_second");
245247
NestedQuery nestedQuery = NestedQuery.of(n1 -> n1.path("node").query(rangeQuery.build()._toQuery()));
246248
temporalQuery.queries(nestedQuery._toQuery());
247249
boolQueryBuilder.must(temporalQuery.build()._toQuery());

0 commit comments

Comments
 (0)