balias
balias

Reputation: 550

ElasticTemplate upgrade to version 5.3.3 for multi match query

I am trying to upgrade from an older version of spring data elasticsearch to new version :

From: 4.1.16 Target: 5.3.3

New spring boot version: 3.3.3

Source Code:

import org.elasticsearch.index.query.QueryBuilders;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;

import java.util.List;

@Service
public class ProductService {

    @Autowired
    private ElasticsearchRestTemplate elasticsearchTemplate;

    public List<Product> searchProducts(String query, String category, String brand, Float[] priceRange) {
        NativeSearchQueryBuilder searchQueryBuilder = new NativeSearchQueryBuilder();

        // Add text query
        if (query != null && !query.isEmpty()) {
            searchQueryBuilder.withQuery(QueryBuilders.multiMatchQuery(query, "name", "category", "brand"));
        }

        // Filter by category
        if (category != null) {
            searchQueryBuilder.withFilter(QueryBuilders.termQuery("category.keyword", category));
        }

        // Filter by brand
        if (brand != null) {
            searchQueryBuilder.withFilter(QueryBuilders.termQuery("brand.keyword", brand));
        }

        // Filter by price range
        if (priceRange != null && priceRange.length == 2) {
            searchQueryBuilder.withFilter(QueryBuilders.rangeQuery("price").gte(priceRange[0]).lte(priceRange[1]));
        }

        NativeSearchQuery searchQuery = searchQueryBuilder.build();
        return elasticsearchTemplate.queryForList(searchQuery, Product.class);
    }
}

I tried upgrading ElasticSeachRestTemplate given in https://docs.spring.io/spring-data/elasticsearch/docs/4.1.16-SNAPSHOT/reference/html/#reference but not able to find the new version of 'multi match query' for 5.3.3 Not able to locate supporting documentation in: https://docs.spring.io/spring-data/elasticsearch/reference/elasticsearch/misc.html#elasticsearch.misc.searchtemplates

Has anyone upgraded or implemented multi match query using version 5.3.3 ? Please suggest steps for this upgrade.

Upvotes: 0

Views: 33

Answers (0)

Related Questions