我正在尝试将“完成提示”与希腊语一起使用。不幸的是,我对像ά这样的重音有疑问。我已经尝试了几种方法。

一种是简单地在映射中设置希腊分析器,另一种是具有asiifolding的小写分析器。没有成功,用希腊分析仪我什至没有得到口音的结果。

以下是我的工作,如果有人可以在这里帮助我,那将是很棒的。

制图

PUT t1
{
  "mappings": {
    "profession" : {
      "properties" : {
        "text" : {
            "type" : "keyword"
        },
        "suggest" : {
            "type" : "completion",
            "analyzer": "greek"
        }
      }
    }
  }
}


POST t1/profession/?refresh
{
    "suggest" : {
        "input": [ "Μάγειρας"]
    }
    ,"text": "Μάγειρας"
}

询问
GET t1/profession/_search
{ "suggest":
  { "profession" :
      { "prefix" : "Μα"
      , "completion" :
        { "field" : "suggest"}
      }}}

最佳答案

我找到了一种使用自定义分析器或通过es插件的方法,在非拉丁文本方面,我强烈建议这样做。

选项1

PUT t1
{ "settings":
    { "analysis":
      { "filter":
        { "greek_lowercase":
          { "type":       "lowercase"
          , "language":   "greek"
          }
        }
      , "analyzer":
          { "autocomplete":
            { "tokenizer": "lowercase"
            , "filter":
                [ "greek_lowercase" ]
          }
        }
    }}
, "mappings": {
    "profession" : {
      "properties" : {
        "text" : {
            "type" : "keyword"
        },
        "suggest" : {
            "type" : "completion",
            "analyzer": "autocomplete"
        }
      }}}
}

选项2 ICU插件

安装ES插件:
https://www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-icu.html
{ "settings": {
"index": {
    "analysis": {
    "normalizer": {
        "latin": {
        "filter": [
            "custom_latin_transform"
        ]
        }
    },
    "analyzer": {
        "latin": {
        "tokenizer": "keyword",
        "filter": [
            "custom_latin_transform"
        ]
        }
    },
    "filter": {
        "noDelimiter": {"type": "word_delimiter"},
        "custom_latin_transform": {
        "type": "icu_transform",
        "id": "Greek-Latin/UNGEGN; Lower(); NFD; [:Nonspacing Mark:] Remove; NFC"
        }
    }
    }
}
}
, "mappings":
{ "doc" : {
"properties" : {
    "verbose" : {
        "type" : "keyword"
    },
    "name" : {
        "type" : "keyword"
    },
    "slugHash":{
        "type" : "keyword",
        "normalizer": "latin"
    },
    "level": { "type": "keyword" },
    "hirarchy": {
        "type" : "keyword"
        },
    "geopoint": { "type": "geo_point"  },
    "suggest" :
        { "type" : "completion"
        , "analyzer": "latin"
        , "contexts":
        [ { "name": "level"
            , "type": "category"
            , "path": "level"
            }
        ]
        }}

    }

}}

09-11 18:10
查看更多