Asciifolding不工作Elastic Search Rails

时间:2013-09-10 11:54:31

标签: ruby-on-rails-3.2 elasticsearch non-ascii-characters

我正在努力让“ asciifolding ”为我的Rails应用程序工作。 我想搜索包含“重音”字符的单词,例如我想在搜索“ foroige ”时出现“foróige”。 我尝试了很多东西。其中有几个在下面。

analysis: {
                analyzer: {
                    text: {
                        tokenizer: "standard",
                        filter: ["standard","lowercase", "asciifolding"],
                        char_filter: 'html_strip'
                    },
                    sortable: {
                        tokenizer: "keyword",
                        filter: ["lowercase", "asciifolding"],
                        char_filter: 'html_strip'
                    }
                }
           }

我也尝试过char_filter跟随James Healey charmap为狮身人面像加入重音字符。 http://yob.id.au/2008/05/08/thinking-sphinx-and-unicode.html

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:6)

在玩完之后我解决了这个问题。我不得不改变默认分析器的行为。

analyzer: {
                    default: {
                        tokenizer: "standard",
                        filter: ["standard", "lowercase", "asciifolding"]
                    },
                    text: {
                        tokenizer: "standard",
                        filter: ["standard", "lowercase"],
                        char_filter: 'html_strip'
                    },
                    sortable: {
                        tokenizer: "keyword",
                        filter: ["lowercase"],
                        char_filter: 'html_strip'
                    }
                }