Я пробовал сопоставлять синонимы различных комбинаций, чтобы иметь возможность запросить просто для n1
и найти элементы, содержащие N°1
(это степень символ).Упругий поиск: Возможность поиска «n1» и соответствия «N ° 1»
Если я ищу N°1
, я могу найти нужные строки без проблем. Синоним работает так, как будто я ищу «тест», он будет соответствовать «testword». Интересно, могут ли фильтры asciifolder
или lowercase
вмешиваться в символ степени или что-то в фильтрах standard
(так как даже удаление этих фильтров не имеет значения).
Это из настроек индексов.
filter: {
exampleSynonyms: {
type: 'synonym',
synonyms: [
'n1, no1, number1, no 1, n 1, number 1 => N°1',
'test => testword'
]
},
exampleStops: {
type: 'stop',
stopwords: ['N°1', 'n°1']
},
exampleAscii: {
type: 'asciifolding',
preserve_original: true
}
},
analyzer: {
default_search: {
tokenizer: 'standard',
filter: ['exampleStops', 'exampleSynonyms', 'lowercase', 'exampleAscii' ]
}
}
Что может помешать °
от использования в качестве синонима?
PS. Символ степени находится в наборе ASCII.