lucene – elasticsearch fuzzy query seems to ignore brazilian stopwords

I have stopwords for brazilian portuguese configured at my index. but if I made a search for the term “ios” (it’s a ios course), a bunch of other documents are returned, because the term “nos” (brazilian stopword) seems to be identified as a valid term for the fuzzy query.

But if I search just by the term “nos”, nothing is returned. I would be not expected ios course to be returned by fuzzy query? I’m confused.

Is there any alternative to this. The main purpose here is that when user search for ios, the documents with stopword like “nos” won’t be returned, while I can mantain the fuzziness for other more complex search made by users.

An example of query:

GET /index/_search
  "explain": true,
  "query": {
      "bool" : {
        "must" : [
            "terms" : {
              "document_type" : [
              "boost" : 1.0
            "multi_match" : {
              "query" : "ios",
              "type" : "best_fields",
              "operator" : "OR",
              "slop" : 0,
              "fuzziness" : "AUTO",
              "prefix_length" : 0,
              "max_expansions" : 50,
              "zero_terms_query" : "NONE",
              "auto_generate_synonyms_phrase_query" : true,
              "fuzzy_transpositions" : true,
              "boost" : 1.0
        "adjust_pure_negative" : true,
        "boost" : 1.0

part of explain query:

 "description": "weight(corpo:nos in 52) [PerFieldSimilarity], result of:",

image with the config of stopwords

enter image description here


I tried to add the prefix length, but I want that stopwords to be ignored.

Read more here: Source link