ElasticSearch带有重音,没有重音词管理

时间:2018-08-16 08:12:13

标签: elasticsearch

我创建了一个索引:

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éllysMacron”};
  • {“ 2”,“MaêllysAlix”};
  • {“ 3”,“MaëllysRosa”};
  • {“ 4”,“MaèllysAlix”};
  • {“ 5”,“ Maellys du Bois”};

我想得到这个结果: 如果我想获取名为“Maéllys”的文档,那么我希望将“MaéllysRichard”和其他具有相同分数的最佳匹配。

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

GET members/member/_search 
{
  "query":{
    "multi_match" : {
      "query" : "Maéllys",
      "fields" : [ "name", "name.accented" ]  
    }
  }
}

“MaéllysRichard”的得分最高。 “ Ma(ê|ë|é|è)llys Richard”文档的得分高于“ Maellys Richard”文档。

有人可以帮助我吗?

谢谢。

0 个答案:

没有答案
相关问题