(Elasticsearch) Range query depending on field

Hello im trying to implement a range query that is dependent on a string field on the product document.

What im trying to achieve:

The standard range query should be between 0 - 2,25.

However if the string field’s value is for example “BEER” then the range query should be between 0 - 3,5.

This is what i’ve come up with so far:

allQueries.Add(qc.Bool(b => b
                            .Filter(filter => filter
                                .Range(r => r
                                    .Field(p => p.Alcohol)
                                    .GreaterThanOrEquals(0)
                                    .LessThanOrEquals(2.25)
                                )
                            )
                            .Should(sh => sh
                                .Terms(t => t
                                    .Field(p => p.FieldTemplateId)
                                    .Terms("BEER")
                                )).MinimumShouldMatch(1)
                                .Filter(filter => filter
                                    .Range(r => r
                                        .Field(p => p.Alcohol)
                                        .GreaterThanOrEquals(0)
                                        .LessThanOrEquals(3.5)
                                    )
                                )
                            )
                        );

However it does not seem to work as intended.

Is this possible?

Litium version: 7.7.9

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