# Help in migrating java client code 7x to 8x

**URL:** <https://discuss.elastic.co/t/help-in-migrating-java-client-code-7x-to-8x/358166>\
**Category:** Elasticsearch\
**Tags:** language-clients\
**Created:** [April 25, 2024, 5:28am UTC](https://discuss.elastic.co/t/help-in-migrating-java-client-code-7x-to-8x/358166 "2024-04-25T05:28:20Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![sinugaud](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sinugaud/32/133830_2.png) [@sinugaud](https://discuss.elastic.co/u/sinugaud)\
**Post date:** [April 25, 2024, 5:28am UTC](https://discuss.elastic.co/t/help-in-migrating-java-client-code-7x-to-8x/358166/1 "2024-04-25T05:28:20Z")

</div>

I have written java code in Spring boot using `elasticsearch-rest-high-level-client` 7.17.4  
now I want to migrate to elastic-search 8  
how I can write term query

```auto
       SearchRequest searchRequest = new SearchRequest(ZEEBE_JOB);

        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();

        if (taskkey != null) {
            BoolQueryBuilder filter = boolQueryBuilder.filter(QueryBuilders.termQuery("key", taskkey));

            log.info("task query: {}", filter);
            // boolQueryBuilder.filter(QueryBuilders.termQuery("intent", "CREATED"));
        }
        if (processInstanceKey != null) {
            BoolQueryBuilder filter = boolQueryBuilder.filter(QueryBuilders.termQuery("value.processInstanceKey", processInstanceKey));
            log.info("process instance: {}", filter);
        }
        if (assignee != null) {
            BoolQueryBuilder filter = boolQueryBuilder.filter(QueryBuilders.termQuery("value.customHeaders.io.camunda.zeebe:assignee", assignee));
            log.info("assignee: {}", filter);
        }

        if (start != null && end != null) {
            long startMillis = start.atStartOfDay().toInstant(ZoneOffset.UTC).toEpochMilli();
            log.info("startMillis : {}", startMillis);

            long endMillis = end.atStartOfDay().plusDays(1).minusSeconds(1).toInstant(ZoneOffset.UTC).toEpochMilli();
            log.info("endMillis : {}", endMillis);

            BoolQueryBuilder filter = boolQueryBuilder.filter(QueryBuilders.rangeQuery("timestamp").gte(start).lte(end).format("yyyy-MM-dd"));
            log.info("time filter : {}", filter);
        }

        if (intent != null) {
            BoolQueryBuilder filter = boolQueryBuilder.filter(QueryBuilders.termQuery("intent", intent));
            log.info("intent : {}", filter);
        }
        searchSourceBuilder.query(boolQueryBuilder);
        searchSourceBuilder.from(from);

        searchRequest.source(searchSourceBuilder);
        List<TaskDto> taskList = new ArrayList<>();

        SearchResponse searchResponse = elasticsearchClient.search(searchRequest, RequestOptions.DEFAULT);

        SearchHit[] hits = searchResponse.getHits().getHits();
        long totalRecords = searchResponse.getHits().getTotalHits().value;

        searchSourceBuilder.sort("timestamp", SortOrder.DESC);

        int recordFrom = searchSourceBuilder.from();
        int size1 = searchSourceBuilder.size();

```

---

<div class="post-metadata">

**Author:** ![ltrotta](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ltrotta/32/124003_2.png) [@ltrotta](https://discuss.elastic.co/u/ltrotta)\
**Post date:** [May 6, 2024, 1:27pm UTC](https://discuss.elastic.co/t/help-in-migrating-java-client-code-7x-to-8x/358166/2 "2024-05-06T13:27:43Z")

</div>

Hello and welcome!  
This is how you start writing a term query, like this example in the [documentation](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-term-query.html), using the 8.X elasticsearch java client:

```auto
esClient.search(s -> s
    .index("index_name")
        .query(q -> q
            .term(t -> t
                .field("user.id")
                .value("kimchy")
                .boost(1.0F)))
, YourUserClass.class);

```

---

<div class="post-metadata">

**Author:** ![sinugaud](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/sinugaud/32/133830_2.png) [@sinugaud](https://discuss.elastic.co/u/sinugaud)\
**Post date:** [May 6, 2024, 7:12pm UTC](https://discuss.elastic.co/t/help-in-migrating-java-client-code-7x-to-8x/358166/3 "2024-05-06T19:12:33Z")

</div>

Thanks @ltrotta ,  
It is helpful.  
Is it possible to add multiple queries into one request, or do I have to write them multiple times?

---

<div class="post-metadata">

**Author:** ![ltrotta](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ltrotta/32/124003_2.png) [@ltrotta](https://discuss.elastic.co/u/ltrotta)\
**Post date:** [May 7, 2024, 8:07am UTC](https://discuss.elastic.co/t/help-in-migrating-java-client-code-7x-to-8x/358166/4 "2024-05-07T08:07:12Z")

</div>

Yes you can combine/concatenate queries, but it would output just one result, so if you're looking for specific values like in the examples you sent I would stick with separate queries.
