Elasticsearch: how to use dismax query with filter

dismax, elasticsearch

Solution

If anyone is looking for an answer, I ended up using the bool query with my dis_max query in must class and filter simply as the filter section of the bool query.

Ex:

{
    "query": {
        "bool": {
            "must": {
                "dis_max": {
                    "queries": [{
                         "multi_match": {}
                     },
                     { 
                         "multi_match": {}
                     }]
                }
            }
            "filter": {
                //Term filter
            }           
        }
    }
}

Problem

I am having hard time to figure out how to use elsticsearch dis_max query with filters. When I do this: ``` { "query": { "dis_max": { "queries": [{ "multi_match": {} }, { "multi_match": {} }], "filter": { //Term filter } } } } ``` Its says [dis_max] query does not support [filter]. but I can use dis_max query with filtered aliases. Ex: I create an alias with filter defined like below and use the same while doing dis_max query and it works perfectly. ``` { "add" : { "index" : "test1", "alias" : "alias1", "filter" : { //Term filter } } } ``` So there should be someway to achieve this without creating aliases. can anyone please tell me how to do it.

Original source