"match-boolean-query doesn't return the "exact match word" of the query

I'm using "match-Boolean-prefix query but I can't get the exact match of the query.I can't use prefix queries because I also need "not exact match" results and I also need the fuzziness and word completion.I get every thing I need by match-boo-prefix query(the fuzziness not work that good though) but my problem is when I'm looking for exact match like "apple" it shows everything that includes "apple" I need the exact match gets higher ranking than others.

GET /_search
{
    "query": {
        "bool": {
            "must": [
                {
                    "match_bool_prefix": {
                        "name": {
                            "query": "milk",
                            "fuzziness": "auto"
                        }
                    }
                },
                {
                    "bool": {
                        "must_not": [
                            {
                                "match": {
                                    "type": "3"
                                }
                            },
                            {
                                "match": {
                                    "type": "4"
                                }
                            }
                        ]
                    }
                },
                {
                    "match": {
                        "status": "A"
                    }
                }
            ],
            "should": [
                {
                    "exists": {
                        "field": "",
                        "boost": 10
                    }
                }
            ]
        }
    },
    "indices_boost": [
        {
            "index1": 3
        },
        {
            "index2": 1.3
        },
        {
            "index3": 1.5
        }
    ],
    "size": 20
}

the result I'm getting with this query is :

"_score": 88.10016,
                "_source": {
                    "status": "A",
                    "name": "Milkhsake, Chocolate",
_score": 86.66473,
                "_source": {
                    "status": "A",
                    "name": "Milky Milk",
score": 86.64781,
                "_source": {
                    "status": "A",
                    "name": "Milkis",
........

The exact result of "milk" goes down the list.

Is there any suggestion how can I fix this issue?

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