5

У меня очень плохое время, чтобы получить «asciifolding», работающий для моего приложения Rails. Я хочу искать слова, содержащие «акцентированные» символы, например я хочу «foróige», чтобы придумать, когда я искать «foroige». Я пробовал много вещей. Несколько из них ниже.Asciifolding not working Elastic Search Rails

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 следуя Джеймс Хили CharMap для сфинкса для акцентированных символов. http://yob.id.au/2008/05/08/thinking-sphinx-and-unicode.html

Любая помощь очень ценится.

ответ

5

После игры с этим я решил проблему. Мне пришлось изменить поведение анализатора по умолчанию.

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' 
        } 
       } 
+1

При поиске вам нужно было преобразовать запросы, содержащие символы акцента, в ascii, или этот фильтр автоматически запускается на вход поиска? – Kevin