elasticsearch模糊查询似乎忽略了巴西停用词

9jyewag0  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(169)

我在索引中配置了巴西葡萄牙语的停用词,但如果我搜索“ios”(这是一个ios课程),则会返回一堆其他文档,因为“nos”(巴西停用词)似乎被识别为模糊查询的有效术语。
但是如果我只搜索“nos”,什么都不会返回。我不希望模糊查询返回ios course?我很困惑。
这里的主要目的是,当用户搜索ios时,带有“nos”这样的停用词的文档不会被返回,而我可以为用户进行的其他更复杂的搜索保留模糊性。
查询示例:

GET /index/_search
{
  "explain": true,
  "query": {
      "bool" : {
        "must" : [
          {
            "terms" : {
              "document_type" : [
                "COURSE"
              ],
              "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
    }
  }
}

部分解释查询:

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

带有停止字配置的图像

谢谢
我试图添加前缀长度,但我希望忽略该停用字词。

3qpi33ja

3qpi33ja1#

我认为,正确的工作方式停用词的语言是如下:

PUT idx_teste
{
  "settings": {
    "analysis": {
      "filter": {
        "brazilian_stop_filter": {
          "type": "stop",
          "stopwords": "_brazilian_"
        }
      }, 
      "analyzer": {
        "teste_analyzer": {
          "tokenizer": "standard",
          "filter": ["brazilian_stop_filter"]
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "name": {
        "type": "text",
        "analyzer": "teste_analyzer"
      }
    }
  }
}

POST idx_teste/_analyze
{
  "analyzer": "teste_analyzer", 
  "text":"course nos advanced"
}

删除了外观术语“nos”。

{
  "tokens": [
    {
      "token": "course",
      "start_offset": 0,
      "end_offset": 6,
      "type": "<ALPHANUM>",
      "position": 0
    },
    {
      "token": "advanced",
      "start_offset": 11,
      "end_offset": 19,
      "type": "<ALPHANUM>",
      "position": 2
    }
  ]
}

相关问题