Abdullah Zafar
Abdullah Zafar

Reputation: 187

elasticsearch-6.8.13, Multi Match Range Query is not working

I am using the ElasticSearch custom DSLs & want to use the query to find the accommodations that have adults gte [:adults] & lte [:perfect_adults]. Its not working even if we used the static values using this formal docs of elastic search. https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-range-query.html#range-query-top-level-params

      if params[:adults].present? && params[:perfect_adults].present?
        conditions << { range: { adults: { gte: params[:adults].to_i, lte: params[:perfect_adults].to_i } } }
      elsif params[:adults].present?
        conditions << { range: { adults: { gte: params[:adults].to_i } } }
        conditions << { range: { adults_and_children: { gte: (params[:adults].to_i + params[:children].to_i) } } }
        conditions << { range: { minimum_adults: { lte: params[:adults].to_i } } }
      end

Upvotes: 0

Views: 169

Answers (1)

Asad Sarfraz
Asad Sarfraz

Reputation: 1

If you have perfect adults attributes in db then:

conditions << { range: { adults: { gte: params[:adults].to_i } } }
conditions << { range: { perfect_adults: { lte: params[:perfect_adults].to_i } } }

If you don't have perfect adults attributes in db then:

conditions << { range: { adults: { gte: params[:adults].to_i, lte: params[:perfect_adults].to_i } } }

Upvotes: 0

Related Questions