Elasticsearch - icu_folding和utf-8搜索

时间:2017-01-21 12:28:58

标签: elasticsearch utf-8

即使经过数小时试图了解弹性搜索,我也无法理解如何使用特殊字符搜索相同的结果。

icu_folding我做错了什么?我怎样才能实现,“Škoda”和“斯柯达”的结果相同?它甚至可能吗?

https://github.com/pavoltravnik/examples/blob/master/elastic_search_settings.sh

1 个答案:

答案 0 :(得分:0)

您正在icu_folding子字段上应用name.sort令牌过滤器,而不是name字段本身,因此您的查询必须是这样的:

# 1 result as expected
curl -XGET 'localhost:9200/my_index/_search?pretty' -d'
{
  "query": { "match": { "name.sort": "Škoda" } }
}'

# 0 results - I expected the same behaviour
curl -XGET 'localhost:9200/my_index/_search?pretty' -d'
{
  "query": { "match": { "name.sort": "Skoda" } }
}'