2017-02-23 59 views
0

我在我的索引中使用希臘字符,我試圖用希臘語進行搜索。例如,如果使用「παλια」搜索,我希望返回「παλια」和「 παλιά「我正在嘗試字符α共創雙映射,但我得到一個錯誤作爲‘匹配\’α\」已添加」。這裏是我的代碼:如何在Elasticsearch charFilter中兩次映射相同的字符

var response = client1.CreateIndex("thetrialindex", 
      th => 
       th.Settings(
        s => 
         s.Analysis(
          a => 
           a.Analyzers(
             an => 
              an.Custom("my_analyzer", 
               cu => cu.Tokenizer("keyword").CharFilters("my_char_filter")) 
               ) 
            .CharFilters(c1=>c1.Mapping("my_char_filter", ma1=>ma1.Mappings("α => ά","α => α"))) 
                        ))); 

回答

0

使用IcuTransform用最好的方法你需要的語言。 例如,對於翻譯的拉丁字符希臘可以用類似的東西:

.IcuTransform("latingreek", lg => lg.Id("Latin-Greek; NFD; [:Nonspacing 
Mark:] Remove; NFC").Direction(IcuTransformDirection.Forward)) 

,並添加到您的索引和搜索分析儀。

相關問題