# Elastic search depreciated classes

**URL:** <https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232>\
**Category:** Elasticsearch\
**Created:** [January 19, 2018, 12:41pm UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232 "2018-01-19T12:41:25Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Master](https://avatars.discourse-cdn.com/v4/letter/m/eb9ed0/32.png) [@Master](https://discuss.elastic.co/u/Master)\
**Post date:** [January 19, 2018, 12:41pm UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/1 "2018-01-19T12:41:25Z")

</div>

i want to migrate elastic search from 2.x to 6.x.

In this process created new indexed and loaded data from DB to ES 6.x but in service layer(java) facing some issue like below

orQueryBuilder.add(QueryBuilders.termQuery("middleSchoolInd", "true"))

orQueryBuilder is depreciated so can i use code like below

QueryBuilders.boolQuery().filter(QueryBuilders.termQuery("highSchoolInd", "true"));

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [January 19, 2018, 1:01pm UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/2 "2018-01-19T13:01:13Z")

</div>

Calling `should` clause is more appropriate IMO.

---

<div class="post-metadata">

**Author:** ![Master](https://avatars.discourse-cdn.com/v4/letter/m/eb9ed0/32.png) [@Master](https://discuss.elastic.co/u/Master)\
**Post date:** [January 22, 2018, 4:05am UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/3 "2018-01-22T04:05:10Z")

</div>

so modified my code as

private void addSchoolAgeFilters(BoolQueryBuilder orQueryBuilder, SchoolSearchForm form) { // actual code

```
//below code is actual code
if (form.isMiddle()) {

       // orQueryBuilder.add(QueryBuilders.termQuery("middleSchoolInd", "true"));

```

//modified code as below, is it right?  
orQueryBuilder.should(QueryBuilders.termQuery("middleSchoolInd", "true"));  
}

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [January 22, 2018, 4:17am UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/4 "2018-01-22T04:17:47Z")

</div>

Please format your code using `</>` icon as explained in [this guide](https://discuss.elastic.co/t/about-the-elasticsearch-category/21). It will make your post more readable.

Or use markdown style like:

````
```
CODE
```

````

It looks good to me.

---

<div class="post-metadata">

**Author:** ![Master](https://avatars.discourse-cdn.com/v4/letter/m/eb9ed0/32.png) [@Master](https://discuss.elastic.co/u/Master)\
**Post date:** [January 22, 2018, 11:33am UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/5 "2018-01-22T11:33:29Z")

</div>

Getting this error "The method add(RangeQueryBuilder) is undefined for the type QueryBuilder"

```
 private void addLocationFilter(QueryBuilder andQueryBuilder, SchoolSearchForm form) {
          
      	andQueryBuilder.add(QueryBuilders.rangeQuery("location.lat").gte(form.getMinLat()).lte(form.getMaxLat()));
        andQueryBuilder.add(QueryBuilders.rangeQuery("location.lon").gte(form.getMinLng()).lte(form.getMaxLng()));
    }
```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [January 22, 2018, 11:47am UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/6 "2018-01-22T11:47:12Z")

</div>

That's true. QueryBuilder does not have a `add()` method.

It's unclear what kind of result you want to have. But if you have a BoolQueryBuilder, you can use `filter(xxx)` and add any filter you want (your range query).

BTW this is super weird that you are doing "manual" filtering on lat/lon as we have dedicated geo\_point fields and specific queries for them.

---

<div class="post-metadata">

**Author:** ![Master](https://avatars.discourse-cdn.com/v4/letter/m/eb9ed0/32.png) [@Master](https://discuss.elastic.co/u/Master)\
**Post date:** [January 22, 2018, 12:01pm UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/7 "2018-01-22T12:01:03Z")

</div>

Commented code is old error code , next to commented code is new code which cleared error, please suggest is it right?

```
  private void addAllSchoolFilters(QueryBuilder andQuery, SchoolSearchForm form) {
        if (form.hasAgeFilter()) {
        	// OrQueryBuilder orQb = QueryBuilders.orQuery();
        	 BoolQueryBuilder orQb = QueryBuilders.boolQuery();
        	this.addSchoolAgeFilters(orQb, form);
        	
           // andQuery.add(orQb);
            QueryBuilders.boolQuery().filter(orQb);
        }

 private void addLocationFilter(QueryBuilder andQueryBuilder, SchoolSearchForm form) {//andQueryBuilder.add(QueryBuilders.rangeQuery("location.lat").gte(form.getMinLat()).lte(form.getMaxLat()));
        	QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery("location.lat").gte(form.getMinLat()).lte(form.getMaxLat()));
        		
           //andQueryBuilder.add(QueryBuilders.rangeQuery("location.lon").gte(form.getMinLng()).lte(form.getMaxLng()));
        	QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery("location.lon").gte(form.getMinLng()).lte(form.getMaxLng()));
        }
```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [January 22, 2018, 1:04pm UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/8 "2018-01-22T13:04:01Z")

</div>

It's unclear to me what you are getting in `QueryBuilder andQuery` or `QueryBuilder andQueryBuilder`.

Anyway, you can write something like:

```auto
client.search(new SearchRequest()
    .source(new SearchSourceBuilder().query(
            QueryBuilders.boolQuery()
                .filter(QueryBuilders.rangeQuery("location.lat").gte(0).lte(0))
                .filter(QueryBuilders.rangeQuery("location.lon").gte(0).lte(0))
    ))
);

```

---

<div class="post-metadata">

**Author:** ![Master](https://avatars.discourse-cdn.com/v4/letter/m/eb9ed0/32.png) [@Master](https://discuss.elastic.co/u/Master)\
**Post date:** [January 23, 2018, 4:15am UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/9 "2018-01-23T04:15:17Z")

</div>

```
QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery("location.lon").gte(form.getMinLng()).lte(form.getMaxLng()));

```

Its works for me, is it right way?

---

<div class="post-metadata">

**Author:** ![Master](https://avatars.discourse-cdn.com/v4/letter/m/eb9ed0/32.png) [@Master](https://discuss.elastic.co/u/Master)\
**Post date:** [January 23, 2018, 4:29am UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/10 "2018-01-23T04:29:58Z")

</div>

Is there any url to check for the depreciated/replacement classes and methods to migrate to ES 6.1.0 for java api

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [January 23, 2018, 7:22am UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/11 "2018-01-23T07:22:47Z")

</div>

It looks ok. But as I said it's a strange way to query for location points.

> BTW this is super weird that you are doing "manual" filtering on lat/lon as we have dedicated geo\_point fields and specific queries for them.

---

<div class="post-metadata">

**Author:** ![Master](https://avatars.discourse-cdn.com/v4/letter/m/eb9ed0/32.png) [@Master](https://discuss.elastic.co/u/Master)\
**Post date:** [January 23, 2018, 8:23am UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/12 "2018-01-23T08:23:38Z")

</div>

Ok Thanks, Please let me know is there any url for check the depreciated/replacement classes and methods to migrate to ES 6.1.0 for java api from ES 2.3.4

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [January 23, 2018, 8:49am UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/13 "2018-01-23T08:49:23Z")

</div>

No. Not from 2.x to 6.x.  
But if you are using the 5.6 version, then I think that most of the deprecated methods as marked as `@Deprecated`.

---

<div class="post-metadata">

**Author:** ![Master](https://avatars.discourse-cdn.com/v4/letter/m/eb9ed0/32.png) [@Master](https://discuss.elastic.co/u/Master)\
**Post date:** [January 24, 2018, 4:12am UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/14 "2018-01-24T04:12:54Z")

</div>

Spring doesn't support elasticsearch 6.1.0 right?

We have to use Rest client , customised code written by our self? Base on the below url

> **[dadoonet/spring-elasticsearch](https://github.com/dadoonet/spring-elasticsearch)**
>
> spring-elasticsearch - Spring factories for elasticsearch

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [January 24, 2018, 10:07am UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/15 "2018-01-24T10:07:44Z")

</div>

Indeed. I did not update the project for a long time. I just opened

> <https://github.com/dadoonet/spring-elasticsearch/issues/124>

Note that it might be possible to use the older version by also adding:

```auto
        <dependency>
            <groupId>fr.pilato.elasticsearch</groupId>
            <artifactId>elasticsearch-beyonder</artifactId>
            <version>5.1</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-client</artifactId>
            <version>6.1.2</version>
        </dependency>

```

(Not tested though)

---

<div class="post-metadata">

**Author:** ![Master](https://avatars.discourse-cdn.com/v4/letter/m/eb9ed0/32.png) [@Master](https://discuss.elastic.co/u/Master)\
**Post date:** [January 25, 2018, 10:49am UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/16 "2018-01-25T10:49:52Z")

</div>

getting this error after tried to integrate spring and elastic search

```
 <dependency>
            <groupId>fr.pilato.elasticsearch</groupId>
            <artifactId>elasticsearch-beyonder</artifactId>
            <version>5.1</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-client</artifactId>
            <version>6.1.2</version>
        </dependency>
         <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-elasticsearch</artifactId>
            <version>3.0.2.RELEASE</version> </dependency>
            
         <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-elasticsearch</artifactId>
        <version>3.0.3.RELEASE</version>
    </dependency>
    
		<dependency>
			<groupId>fr.pilato.spring</groupId>
			<artifactId>spring-elasticsearch</artifactId>
			<version>2.1.0</version>
		</dependency>

```

Error occured processing XML  
'org.springframework.data.jpa.repository.config.JpaRepositoryConfigExtension.getRepositoryFactoryBeanClassName()Ljava/  
lang/String;'. See Error Log for more details

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [January 25, 2018, 11:10am UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/17 "2018-01-25T11:10:08Z")

</div>

Sounds like I did not release 5.0 o\_O...

May be use spring-elasticsearch 5.0-SNAPSHOT ?

---

<div class="post-metadata">

**Author:** ![Master](https://avatars.discourse-cdn.com/v4/letter/m/eb9ed0/32.png) [@Master](https://discuss.elastic.co/u/Master)\
**Post date:** [January 25, 2018, 12:14pm UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/18 "2018-01-25T12:14:07Z")

</div>

Is there any other way to implement elasticsearch 6.x with spring ?

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [January 25, 2018, 1:01pm UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/19 "2018-01-25T13:01:14Z")

</div>

I don't know if this can help:

> <https://github.com/dadoonet/spring-boot-cloud-elastic/blob/master/src/main/java/com/example/demo/DemoApplication.java>

You can produce your own bean here with the rest Client I think.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [February 22, 2018, 1:01pm UTC](https://discuss.elastic.co/t/elastic-search-depreciated-classes/116232/20 "2018-02-22T13:01:28Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
