In mysql it would look like this.

SELECT * FROM `user` WHERE (`birthday`='2000-05-01' AND `country_id`=3546 AND `city_id`=1276 AND `name` LIKE '%Марина%') OR (`birthday`='1983-05-23' AND `country_id`=3456 AND `city_id`=1235 AND `name` LIKE '%Саша%') OR .................................................................................................. (`birthday`='1983-04-12' AND `country_id`=3456 AND `city_id`=1235 AND `name` LIKE '%Глаша%') 

What query will be for elasticsearch?

    1 answer 1

    If you are working with elasticsearch advise you to install the Head plugin with which you would easily build this query, as far as searching is concerned, read the documentation (for example, search api ) where should is an array of logical OR, and must an array of logical I. Try using a query like this view:

     { "query": { "bool": { "should": [ { "bool": { "must": [ { "match": { "birthday": "2000-05-01", "country_id": "3546" }, "term": { "name": "Марина" } } ] } }, { "bool": { "must": [ { "match": { "birthday": "1983-05-23", "country_id": "3456" }, "term": { "name": "Саша" } } ] } } ] } } }