【问题标题】:elasticsearch ignore accents on searchelasticsearch忽略搜索重音
【发布时间】:2020-10-01 13:31:38
【问题描述】:

我有一个包含客户信息的弹性搜索索引

我在寻找带有重音符号的结果时遇到了一些问题

例如,我有{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"}
  }
}

我想得到anaisanaïs,在这种情况下我只有anais

我尝试添加analyser

PUT /my-new-celebrity/_settings
{
  "analysis": {
    "analyzer": {
      "default": {
        "type": "custom",
        "tokenizer": "standard",
        "filter": [
          "lowercase",
          "asciifolding"
        ]
      }
    }
  }
}

但在这种情况下,对于两个搜索,我只得到anais

【问题讨论】:

标签: elasticsearch elasticsearch-query elasticsearch-analyzers


【解决方案1】:

您好像忘记在您的 name 字段上应用您的自定义 default 分析器,下面是工作示例:

带映射和设置的索引定义

{
    "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"
                }
            }
        ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 2011-12-09
    • 2023-03-24
    • 2012-06-05
    相关资源
    最近更新 更多