Minimum_should_match not working as expected

Hello All,

Match Query:

    {
   "query":{  
      "bool":{  
         "should":[  
            {  
               "match":{  
                  "nAME":{  
                     "analyzer":"my_fuzzy_analyzer",
                     "fuzziness":"AUTO:1,4",
                     "fuzzy_transpositions":true,
                     "max_expansions":2147483647,
                     "minimum_should_match":-1,
                     "operator":"and",
                     "prefix_length":3,
                     "query":"SHENZHEN LONGTANUO LOGISTICS       C                                  "
                  }
               }
            }
         ]
      }
   }
}

Expected Results:

SHENZHEN LONGTANUO LOGISTICS       C                                  
SHENZHEN LUCKY LOGISTICS LTD.                                         
SHENZHEN UNIQUE LOGISTICS          INTERNATIONAL LTD.                 

Note : International - ltd - logistics are stopword ,

But only get result :

SHENZHEN LONGTANUO LOGISTICS       C     

I couldnt understand why. Beause every text have -1 match

Analyzer :

{
    "atlas.zcustomer": {
        "settings": {
            "index": {
                "number_of_shards": "5",
                "provided_name": "atlas.zcustomer",
                "creation_date": "1563288936515",
                "analysis": {
                    "filter": {
                        "my_stop_word": {
                            "type": "stop",
                            "stopwords": [
                                "ith",
                                "ihr",
                                "san",
                                "tic",
                                "ltd",
                                "de",
                                "la",
                                "s",
                                "a",
                                "inc",
                                "logistics",
                                "international"
                            ]
                        },
                        "my_length": {
                            "type": "length",
                            "min": "3"
                        }
                    },
                    "analyzer": {
                        "my_fuzzy_analyzer": {
                            "filter": [
                                "my_length",
                                "lowercase",
                                "my_stop_word"
                            ],
                            "type": "custom",
                            "tokenizer": "standard"
                        }
                    }
                },
                "number_of_replicas": "1",
                "uuid": "KVI55mDhS4mtumpOqp4mjw",
                "version": {
                    "created": "6060099"
                }
            }
        }
    }
}

Thank means that all terms present in the query have to match. You need to replace it with or. Please, see documentation for more information on the topic.

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