Elasticsearch Query match 100% with exact match

Search term: wall clock

Document 1

{
    "title": "wall clock"
}

Document 2

{
    "title": "clock wall"
}

Document 3

{
    "title": "wall clock in bangalore"
}

query which I have used

{
    "_source": [
        "title"
    ],
    "size": 10,
    "query": {
        "bool": {
            "should": [
                {
                    "match_phrase": {
                        "title": {
                            "query": "wall clock",
                            "boost": 1
                        }
                    }
                }
            ],
            "minimum_should_match": "1"
        }
    }
}

Expected result:

Document 1 & Document 2

Guide me with the same.

You can change your field from text to keyword in the mapping and use a term query. It will do exact match.

If I use a keyword, it doesn't undergo stemming or any other analysis steps.

When you use a match_phrase query clause the order of the terms matter so your query will never match document 2. If you use a normal query string both terms must match, but that will bring back all 3 documents. I can not think of a way to return documents 1 and 2 but not 3 as it also contains the tokens you are searching for.