elasticsearch在搜索时忽略重音符号

9wbgstp7  于 2021-06-10  发布在  ElasticSearch
关注(0)|答案(1)|浏览(345)

我有一个包含客户信息的elasticsearch索引
我有一些问题,寻找一些口音的结果
例如,我有 {name: 'anais'} 以及 {name: anaïs} 跑步

GET /my-index/_search
{
  "size": 25, 
  "query": {
    "match": {"name": "anaïs"}
  }
}

我想得到这两个相同的查询,在这种情况下,我只有 anaïs ```
GET /my-index/_search
{
"size": 25,
"query": {
"match": {"name": "anais"}
}
}

我想得到 `anais` 以及 `anaïs` ,在这种情况下,我只有 `anais` 我试着添加一个 `analyser` ```
PUT /my-new-celebrity/_settings
{
  "analysis": {
    "analyzer": {
      "default": {
        "type": "custom",
        "tokenizer": "standard",
        "filter": [
          "lowercase",
          "asciifolding"
        ]
      }
    }
  }
}

但在这两种情况下,我只得到 anais

9o685dep

9o685dep1#

看来你忘了应用你的习惯了 default 分析仪在您的 name 字段,下面是工作示例:
带Map和设置的索引def

{
    "settings": {
        "analysis": {
            "analyzer": {
                "default": {
                    "type": "custom",
                    "tokenizer": "standard",
                    "filter": [
                        "lowercase",
                        "asciifolding"
                    ]
                }
            }
        }
    },
    "mappings" : {
        "properties" :{
            "name" : {
                "type" : "text",
                "analyzer" : "default" // note this 
            }
        }
    }
}

索引示例文档

{
   "name" : "anais"
}

{
   "name" : "anaïs"
}

搜索查询与您的相同

{
    "size": 25,
    "query": {
        "match": {
            "name": "anaïs"
        }
    }
}

和预期的两个搜索结果

"hits": [
            {
                "_index": "myindexascii",
                "_type": "_doc",
                "_id": "1",
                "_score": 0.18232156,
                "_source": {
                    "name": "anaïs"
                }
            },
            {
                "_index": "myindexascii",
                "_type": "_doc",
                "_id": "2",
                "_score": 0.18232156,
                "_source": {
                    "name": "anais"
                }
            }
        ]

相关问题