elasticsearch ElasticSearch重音和非重音单词管理,elasticsearch,elasticsearch" /> elasticsearch ElasticSearch重音和非重音单词管理,elasticsearch,elasticsearch" />

elasticsearch ElasticSearch重音和非重音单词管理

elasticsearch ElasticSearch重音和非重音单词管理,elasticsearch,elasticsearch,我创建了一个索引: PUT members { "settings":{ "number_of_shards":1, "analysis":{ "analyzer":{ "accentedNames":{ "tokenizer":"standard", "filter":[ "lowercase", "as

我创建了一个索引:

PUT members
{
"settings":{
    "number_of_shards":1,
    "analysis":{
        "analyzer":{
            "accentedNames":{
                "tokenizer":"standard",
                "filter":[
                  "lowercase",
                  "asciifolding"
                ]
            },
            "standardNames":{
                "tokenizer":"standard",
                "filter":[
                  "lowercase"
                ]
            }
        }
    }
},
"mappings":{
    "member":{
        "properties":{
            "id":{
                "type":"text"
            },
            "name":{
                "type":"text",
                "analyzer":"standardNames",
                "fields":{
                    "accented":{
                        "type":"text",
                        "analyzer":"accentedNames"
                    }
                }
            } 
        }
    }
}
}
假设某些文档在此集中(编辑)

  • {“1”,“Maéllys Macron”}
  • {“2”,“Maêllys Alix”}
  • {“3”,“Maëllys Rosa”}
  • {“4”,“Maèllys Alix”}
  • {“5”,“Maellys du Bois”}
我想得到这样的结果: 如果我想获得名为“Maéllys”的文档,我希望获得“Maéllys Richard”作为最佳匹配,以及其他具有相同分数的文档

我所做的是将我的分析仪用于这样的请求:

GET members/member/_search 
{
  "query":{
    "multi_match" : {
      "query" : "Maéllys",
      "fields" : [ "name", "name.accented" ]  
    }
  }
}
“Maéllys Richard”得分最高。“Ma(||||||||||||||)llys Richard”文件的得分与“Maellys Richard”文件相同,高于“Maellys Richard”文件

有人能帮我吗


谢谢。

我对Maéllys的评分为1.3862944(如您所期望的最佳匹配),而所有其他文档的最低评分均为0.087011375(如您所期望的相同)。您是否愿意解释结果与您看到的结果之间的差异?请注意,每个文档名称都是“Ma(eéèllys Richard”“这就是你发现的原因。这是我的错,我给每个文件都起了相同的姓。请看上面。再次感谢。