6

我很难让“ 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 for sphinx for 重音字符。 http://yob.id.au/2008/05/08/thinking-sphinx-and-unicode.html

非常感谢任何帮助。

4

1 回答 1

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'
                    }
                }
于 2013-09-10T16:36:55.677 回答