完成建议外语口译希腊语

时间:2017-08-07 07:04:43

标签: elasticsearch autocomplete analyzer

我正在尝试使用希腊语的完成建议器。不幸的是,我遇到像ά这样的重音问题。我尝试了几种方法。

一种只是将希腊分析仪设置为映射,另一种是使用asciifolding设置小写分析器。没有成功,希腊分析仪我甚至没有得到带有重音的结果。

以下是我的所作所为,如果有人能帮助我,那就太棒了。

映射

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

1 个答案:

答案 0 :(得分:0)

我找到了一种使用自定义分析器的方法。 奇怪的是,我必须找出哪个过滤器在希腊分析器的构建中打破了它。这应该有效:

映射

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