搜索无关越南人物与英国人物

时间:2016-04-09 13:36:10

标签: elasticsearch

我想搜索结果,无论是标记的还是未标记的。

例如:我想找到“rồngphượng”这个词,但是当我输入“rong”,“rong phuong”,“phuong”,“rồngphuong”,“rongphượng”......时,我都得到了正确的结果。

1 个答案:

答案 0 :(得分:1)

我认为你需要icu_folding令牌过滤器:

PUT /my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": { 
          "tokenizer": "icu_tokenizer",
          "filter":  [ "icu_folding", "lowercase" ]
        }
      }
    }
  },
  "mappings": {
    "my_type": {
      "properties": {
        "text": {
          "type": "string",
          "analyzer": "my_analyzer"
        }
      }
    }
  }
}

然后使用简单的match查询:

GET /my_index/my_type/_search
{
  "query": {
    "match": {
      "text": "phượng"
    }
  }
}